1<?php 2/** 3 * Example for the usage of ezcConsoleParameter class. 4 * 5 * @package ConsoleTools 6 * @version 1.6.1 7 * @copyright Copyright (C) 2005-2010 eZ Systems AS. All rights reserved. 8 * @license http://ez.no/licenses/new_bsd New BSD License 9 */ 10 11require_once 'Base/src/base.php'; 12/** 13 * Autoload ezc classes 14 * 15 * @param string $className 16 */ 17function __autoload( $className ) 18{ 19 ezcBase::autoload( $className ); 20} 21 22$optionHandler = new ezcConsoleInput(); 23 24// Register simple parameter -h/--help 25$optionHandler->registerOption( new ezcConsoleOption( 'h', 'help' ) ); 26 27// Register complex parameter -f/--file 28$file = new ezcConsoleOption( 29 'f', 30 'file', 31 ezcConsoleInput::TYPE_STRING, 32 null, 33 false, 34 'Process a file.', 35 'Processes a single file.' 36); 37$optionHandler->registerOption( $file ); 38 39// Manipulate parameter -f/--file after registration 40$file->multiple = true; 41 42// Register another complex parameter that depends on -f and excludes -h 43$dir = new ezcConsoleOption( 44 'd', 45 'dir', 46 ezcConsoleInput::TYPE_STRING, 47 null, 48 true, 49 'Process a directory.', 50 'Processes a complete directory.', 51 array( new ezcConsoleOptionRule( $optionHandler->getOption( 'f' ) ) ), 52 array( new ezcConsoleOptionRule( $optionHandler->getOption( 'h' ) ) ) 53); 54$optionHandler->registerOption( $dir ); 55 56// Register an alias for this parameter 57$optionHandler->registerAlias( 'e', 'extended-dir', $dir ); 58 59// Process registered parameters and handle errors 60try 61{ 62 $optionHandler->process( array( 'example_input.php', '-h' ) ); 63} 64catch ( ezcConsoleOptionException $e ) 65{ 66 echo $e->getMessage(); 67 exit( 1 ); 68} 69 70// Process a single parameter 71$file = $optionHandler->getOption( 'f' ); 72if ( $file->value === false ) 73{ 74 echo "Parameter -{$file->short}/--{$file->long} was not submitted.\n"; 75} 76elseif ( $file->value === true ) 77{ 78 echo "Parameter -{$file->short}/--{$file->long} was submitted without value.\n"; 79} 80else 81{ 82 echo "Parameter -{$file->short}/--{$file->long} was submitted with value <".var_export($file->value, true).">.\n"; 83} 84 85// Process all parameters at once: 86foreach ( $optionHandler->getOptionValues() as $paramShort => $val ) 87{ 88 switch ( true ) 89 { 90 case $val === false: 91 echo "Parameter $paramShort was not submitted.\n"; 92 break; 93 case $val === true: 94 echo "Parameter $paramShort was submitted without a value.\n"; 95 break; 96 case is_array( $val ): 97 echo "Parameter $paramShort was submitted multiple times with value: <".implode(', ', $val).">.\n"; 98 break; 99 default: 100 echo "Parameter $paramShort was submitted with value: <$val>.\n"; 101 break; 102 } 103} 104?> 105