{ ezcBase::autoload($className); } $optionHandler = new ezcConsoleInput(); // Register simple parameter -h/--help $optionHandler->registerOption(new ezcConsoleOption('h', 'help')); // Register complex parameter -f/--file $file = new ezcConsoleOption('f', 'file', ezcConsoleInput::TYPE_STRING, null, false, 'Process a file.', 'Processes a single file.'); $optionHandler->registerOption($file); // Manipulate parameter -f/--file after registration $file->multiple = true; // Register another complex parameter that depends on -f and excludes -h $dir = new ezcConsoleOption('d', 'dir', ezcConsoleInput::TYPE_STRING, null, true, 'Process a directory.', 'Processes a complete directory.', array(new ezcConsoleOptionRule($optionHandler->getOption('f'))), array(new ezcConsoleOptionRule($optionHandler->getOption('h')))); $optionHandler->registerOption($dir); // Register an alias for this parameter $optionHandler->registerAlias('e', 'extended-dir', $dir); // Process registered parameters and handle errors try { $optionHandler->process(array('example_input.php', '-h')); } catch (ezcConsoleOptionException $e) { echo $e->getMessage(); exit(1); } // Process a single parameter $file = $optionHandler->getOption('f'); if ($file->value === false) { echo "Parameter -{$file->short}/--{$file->long} was not submitted.\n"; } elseif ($file->value === true) { echo "Parameter -{$file->short}/--{$file->long} was submitted without value.\n"; } else { echo "Parameter -{$file->short}/--{$file->long} was submitted with value <" . var_export($file->value, true) . ">.\n";