本文整理汇总了PHP中Zend_Console_Getopt::parse方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Console_Getopt::parse方法的具体用法?PHP Zend_Console_Getopt::parse怎么用?PHP Zend_Console_Getopt::parse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Console_Getopt
的用法示例。
在下文中一共展示了Zend_Console_Getopt::parse方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setOptions
/**
* method to set the options from the command line
*
* @return boolean true on success, else false
*/
protected function setOptions()
{
try {
$input = array('r|R|receive' => 'Receive files and process them into database', 'p|P|process' => 'Process files into database', 'c|C|calc|calculate' => 'Calculate lines in database', 'a|A|aggregate' => 'Aggregate lines for billrun', 'g|G|generate' => 'Generate xml and csv files of specific billrun', 'e|E|respond' => 'Respond to files that were processed', 'l|L|alert' => 'Process and detect alerts', 'h|H|help' => 'Displays usage information.', 'type-s' => 'Process: Ild type to use', 'stamp-s' => 'Process: Stamp to use for this run', 'path-s' => 'Process: Path of the process file', 'export-path-s' => 'Respond: The path To export files', 'workspace-s' => 'The path to the workspace directory', 'parser-s' => 'Process: Parser type (default fixed)', 'backup' => 'Process: Backup path after the file processed (default ./backup)', 'page-s' => 'the page to aggregate', 'size-s' => 'the size of the page to aggregate', 'environment-s' => 'Environment of the running command', 'env-s' => 'Environment of the running command', 'fetchonly' => 'Only fetch data from remote or db instead of doing complete action');
$this->options = new Zend_Console_Getopt($input);
$this->options->parse();
} catch (Zend_Console_Getopt_Exception $e) {
$this->addOutput($e->getMessage() . "\n\n" . $e->getUsageMessage());
return false;
}
return true;
}
示例2: routeStartup
public function routeStartup(Zend_Controller_Request_Abstract $request)
{
try {
$opts = new Zend_Console_Getopt(array('controller|c=s' => 'Name of the controller to open', 'action|a=s' => 'The command line action to execute', 'cityId|ci=i' => 'City id to get trend data for', 'startDate|sd=s' => 'Start date for the price trends', 'endDate|ed=s' => 'End date for the price trends', 'hours|h=i' => 'How many hours to simulate for'));
$opts->parse();
$args = $opts->getRemainingArgs();
if (!isset($opts->action)) {
throw new Zend_Console_Getopt_Exception('Action parameter missing');
}
$cliAction = $opts->action;
$cliController = $opts->controller;
$paramters = array();
$optArray = $opts->toArray();
for ($i = 0; $i < count($optArray); $i += 2) {
$paramters[$optArray[$i]] = $optArray[$i + 1];
}
} catch (Zend_Console_Getopt_Exception $e) {
echo $opts->getUsageMessage();
exit;
}
// set the request as a CLI request
$request = new Zend_Controller_Request_Simple($cliAction, $cliController, 'cli');
foreach ($paramters as $key => $paramVal) {
$request->setParam($key, $paramVal);
}
foreach ($args as $argument) {
$request->setParam($argument, true);
}
$response = new Zend_Controller_Response_Cli();
$front = Zend_Controller_Front::getInstance();
$front->setRequest($request)->setResponse($response);
}
示例3: handle
/**
* handler for command line scripts
*
* @return boolean
*/
public function handle()
{
try {
$opts = new Zend_Console_Getopt(array('help|h' => 'Display this help Message', 'verbose|v' => 'Output messages', 'config|c=s' => 'Path to config.inc.php file', 'setconfig' => 'Update config. To specify the key and value, append \' -- configKey="your_key" configValue="your config value"\'
Examples:
setup.php --setconfig -- configkey=sample1 configvalue=value11
setup.php --setconfig -- configkey=sample2 configvalue=arrayKey1:Value1,arrayKey2:value2', 'check_requirements' => 'Check if all requirements are met to install and run tine20', 'create_admin' => 'Create new admin user (or reactivate if already exists)', 'install-s' => 'Install applications [All] or comma separated list;' . ' To specify the login name and login password of the admin user that is created during installation, append \' -- adminLoginName="admin" adminPassword="password"\'' . ' To add imap or smtp settings, append (for example) \' -- imap="host:mail.example.org,port:143,dbmail_host:localhost" smtp="ssl:tls"\'', 'update-s' => 'Update applications [All] or comma separated list', 'uninstall-s' => 'Uninstall application [All] or comma separated list', 'list-s' => 'List installed applications', 'sync_accounts_from_ldap' => 'Import user and groups from ldap', 'egw14import' => 'Import user and groups from egw14
Examples:
setup.php --egw14import egwdbhost egwdbuser egwdbpass egwdbname latin1
setup.php --egw14import egwdbhost egwdbuser egwdbpass egwdbname utf8'));
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo "Invalid usage: {$e->getMessage()}\n\n";
echo $e->getUsageMessage();
exit;
}
if (count($opts->toArray()) === 0 || $opts->h || empty($opts->install) && empty($opts->update) && empty($opts->uninstall) && empty($opts->list) && empty($opts->sync_accounts_from_ldap) && empty($opts->egw14import) && empty($opts->check_requirements) && empty($opts->create_admin) && empty($opts->setconfig)) {
echo $opts->getUsageMessage();
exit;
}
if ($opts->config) {
// add path to config.inc.php to include path
$path = strstr($opts->config, 'config.inc.php') !== false ? dirname($opts->config) : $opts->config;
set_include_path($path . PATH_SEPARATOR . get_include_path());
}
Setup_Core::initFramework();
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Is cli request. method: ' . (isset($opts->mode) ? $opts->mode : 'EMPTY'));
}
$setupServer = new Setup_Frontend_Cli();
#$setupServer->authenticate($opts->username, $opts->password);
return $setupServer->handle($opts);
}
示例4: run
/**
* Main Entry Point
* */
public function run()
{
//deal with command line argument
try {
$opts = new Zend_Console_Getopt(array('discover|d' => 'special Twitter search for PHP around Ottawa (not saved)'));
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo $e->getUsageMessage();
exit;
}
// if special argument is received
if (isset($opts->d)) {
$this->fetchTwitterSpecial($opts->getRemainingArgs());
} else {
$this->fetchBlogs();
$this->fetchTwitter();
// clear all cache
$cacheConfig = $this->application->getBootstrap()->getOption('cache');
if ($cacheConfig['enabled']) {
$cache = Zend_Cache::factory('Page', 'File', array(), $cacheConfig['backend']);
echo PHP_EOL . '->clearing cache' . PHP_EOL;
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);
}
}
}
示例5: index
public function index()
{
try {
$opts = new Zend_Console_Getopt(array('help|h' => 'Displays usage information', 'profiling|p' => 'Turn on Magento\'s profiler', 'database|d' => 'Turn on profiling of db queries'));
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
$this->out('I do apologise! ' . $e->getMessage(), "red");
echo "\n" . str_replace("magentleman", "magentleman console", $e->getUsageMessage()) . "\n";
exit;
}
// Help action
if (isset($opts->help)) {
$this->out("It's terribly simple to use me:", "green");
echo "\n";
echo str_replace("magentleman", "magentleman console", $opts->getUsageMessage());
echo "\n";
exit;
}
if (isset($opts->profiling)) {
$this->profiling = true;
}
if (isset($opts->database)) {
$this->database = true;
}
$this->clear();
$this->out("");
$this->out(" " . $this->greeting, "green");
$this->out(" To get help using this console, visit our website at http://www.qipcreative.com/magentleman\n", "yellow");
$this->startConsole();
}
示例6: init
public function init()
{
// Define some CLI options
$getopt = new Zend_Console_Getopt(array('withdata|w' => 'Load database with sample data', 'env|e-s' => 'Application environment for which to create database (defaults to development)', 'help|h' => 'Help -- usage message'));
try {
$getopt->parse();
} catch (Zend_Console_Getopt_Exception $e) {
// Bad options passed: report usage
echo $e->getUsageMessage();
return false;
}
// Initialize Zend_Application
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
// Initialize and retrieve DB resource
$bootstrap = $application->getBootstrap();
$bootstrap->bootstrap('db');
$dbAdapter = $bootstrap->getResource('db');
// let the user know whats going on (we are actually creating a
// database here)
if ('testing' != APPLICATION_ENV) {
echo 'Writing Database Guestbook in (control-c to cancel): ' . PHP_EOL;
for ($x = 5; $x > 0; $x--) {
echo $x . "\r";
sleep(1);
}
}
vd(1);
}
示例7: parse
/**
* Parses the configuration options and populates the data store.
*
* @param bool $force if true; forces parsing independently of the _parsed property.
*
* @return void
*/
public function parse($force = false)
{
if ($this->_parsed === true && !$force) {
return $this;
}
$this->_parsed = false;
try {
parent::parse();
} catch (Zend_Exception $e) {
$name = basename($_SERVER['SCRIPT_NAME'], '.php');
echo $name . ': ' . $e->getMessage() . PHP_EOL;
echo 'Try: \'' . $name . ' --help\' for more information.' . PHP_EOL;
exit(22);
}
if ($this->getHelp()) {
DocBlox_Core_Application::renderVersion();
echo $this->getUsageMessage();
exit(0);
}
// prevent the loading of configuration files by specifying 'none'.
if (strtolower($this->getConfig()) == 'none') {
return;
}
if ($this->getConfig()) {
// when the configuration parameter is provided; merge that with the basic config
DocBlox_Core_Abstract::config()->merge(new Zend_Config_Xml($this->getConfig()));
} elseif (is_readable('docblox.xml')) {
// when the configuration is not provided; check for the presence of a configuration file in the current directory
// and merge that
DocBlox_Core_Abstract::config()->merge(new Zend_Config_Xml('docblox.xml'));
} elseif (is_readable('docblox.dist.xml')) {
// when no docblox.xml is provided; check for a dist.xml file. Yes, compared to, for example, PHPUnit the xml
// and dist is reversed; this is done on purpose so IDEs have an easier time on it.
DocBlox_Core_Abstract::config()->merge(new Zend_Config_Xml('docblox.dist.xml'));
}
$this->prePopulate();
// the parse method does not have a hook point to invoke the setter methods; thus we iterate through the options and
// invoke the setters. If no setter exists the __call method will handle this.
// We have explicitly kept this intact (as the __call's set does nothing special) to enable subclasses to override
// the __call and receive the benefits.
foreach ($this->getOptions() as $value) {
$method_name = '';
// loop through all aliases to check whether a real method was overridden
foreach ($this->_rules[$value]['alias'] as $alias) {
$method_name = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $alias)));
if (method_exists($this, $method_name)) {
// found one! execute it and continue to the next
$this->{$method_name}($this->getOption($value));
continue 2;
}
}
if ($method_name == '') {
throw new Exception('Unable to find a name for the setter for argument ' . $value);
}
// no overridden methods found; just invoke the default name to trigger the __call method
$this->{$method_name}($this->getOption($value));
}
}
示例8: _parseParams
/**
* Prepare options & aguments
*
* @return void
*/
protected final function _parseParams()
{
$this->_parseArguments();
$aOptions = $this->_parseOptions();
try {
$this->_oGetopt = new Zend_Console_Getopt($aOptions);
$this->_oGetopt->parse();
} catch (Zend_Console_Getopt_Exception $oException) {
echo $oException->getUsageMessage();
exit;
}
}
示例9: __construct
public function __construct(Zend_Console_Getopt $getopt)
{
$this->_getopt = $getopt;
$getopt->parse();
if ($getopt->{$this->getModuleKey()}) {
$this->setModuleName(HCLI_Controller_Util::decode($getopt->{$this->getModuleKey()}));
}
if ($getopt->{$this->getControllerKey()}) {
$this->setControllerName(HCLI_Controller_Util::decode($getopt->{$this->getControllerKey()}));
}
if ($getopt->{$this->getActionKey()}) {
$this->setActionName($getopt->{$this->getActionKey()});
}
}
示例10: parse
public function parse()
{
// get actionname from arguments
if (count($this->_arguments) == 0) {
return;
}
// action name will be a free floating string
$actionName = array_shift($this->_arguments);
// check to make sure that the action exists
if (!($actionContext = $this->_buildManifest->getContext('action', $actionName)) instanceof Zend_Build_Manifest_Context) {
require_once 'Zend/Tool/Cli/Context/Exception.php';
throw new Zend_Tool_Cli_Context_Exception('No action context by name ' . $actionName . ' was found in the manifest.');
}
$getoptRules = array();
// get the attributes from this action context
$actionContextAttrs = $actionContext->getAttributes();
foreach ($actionContextAttrs as $actionContextAttr) {
if (isset($actionContextAttr['attributes']['getopt'])) {
$getoptRules[$actionContextAttr['attributes']['getopt']] = $actionContextAttr['usage'];
}
}
// parse those options out of the arguments array
$getopt = new Zend_Console_Getopt($getoptRules, $this->_arguments, array('parseAll' => false));
$getopt->parse();
// put remaining args into local property
$this->_arguments = $getopt->getRemainingArgs();
// get class name
$actionClassName = $actionContext->getClassName();
// load appropriate file
try {
Zend_Loader::loadClass($actionClassName);
} catch (Zend_Loader_Exception $e) {
echo 'couldnt load ' . $actionClassName . PHP_EOL;
}
// get actual object for class name
$this->_action = new $actionClassName();
// make sure its somewhat sane (implements proper interface)
if (!$this->_action instanceof Zend_Build_Action_Abstract) {
echo 'does not implement Zend_Build_Action_Abstract ' . PHP_EOL;
}
$parameters = array();
foreach ($getopt->getOptions() as $getoptParsedOption) {
$parameters[$getoptParsedOption] = $getopt->getOption($getoptParsedOption);
}
$this->_action->setParameters($parameters);
$this->_action->validate();
$this->setExecutable();
return;
// everything succeeded
}
示例11: route
/**
* Processes a request and sets its controller and action. If
* no route was possible, an exception is thrown.
*
* @param \Zend_Controller_Request_Abstract
* @throws \Zend_Controller_Router_Exception
* @return \Zend_Controller_Request_Abstract|boolean
*/
public function route(\Zend_Controller_Request_Abstract $request)
{
$options = array('help|h' => 'Show this help', 'org|o=i' => 'The user organization number', 'pwd|p=s' => 'User password', 'user|u=s' => 'The user name');
$getopt = new \Zend_Console_Getopt($options);
try {
$getopt->parse();
} catch (\Zend_Console_Getopt_Exception $e) {
echo $this->_expandMessage($e);
exit;
}
if ($getopt->getOption('h')) {
// $getopt->s
echo $this->_expandMessage($getopt);
exit;
}
if ($request instanceof \MUtil_Controller_Request_Cli) {
$request->setUserLogin($getopt->getOption('u'), $getopt->getOption('o'), $getopt->getOption('p'));
}
$arguments = $getopt->getRemainingArgs();
if ($arguments) {
$controller = array_shift($arguments);
$action = array_shift($arguments);
if (!$action) {
$action = 'index';
}
if (preg_match('/^\\w+(-\\w+)*$/', $controller) && preg_match('/^\\w+(-\\w+)*$/', $action)) {
$request->setControllerName($controller);
$request->setActionName($action);
$params[$request->getControllerKey()] = $controller;
$params[$request->getActionKey()] = $action;
foreach ($arguments as $arg) {
if (\MUtil_String::contains($arg, '=')) {
list($name, $value) = explode('=', $arg, 2);
} else {
$name = $arg;
$value = '';
}
$params[$name] = $value;
}
$request->setParams($params);
return $request;
}
echo "Invalid command: {$controller}/{$action}.\n", exit;
}
echo "No command given.\n\n";
echo $this->_expandMessage($getopt), exit;
}
示例12: parse
public function parse()
{
try {
$getopt = new Zend_Console_Getopt($this->_globalGetoptRules(), $this->_arguments, array('parseAll' => false));
$getopt->parse();
} catch (Exception $e) {
die($e->getMessage());
}
if (in_array('help', $getopt->getOptions())) {
$this->setShortCircuited(true);
$this->_displayHelp();
return;
}
$this->setExecutable();
// check if global switches are supported
return;
}
示例13: __construct
public function __construct()
{
$flags = array('--' . $this->getActionKey(), '-a', '--' . $this->getControllerKey(), '-c', '--' . $this->getModuleKey(), '-m');
$argv = array($_SERVER['argv'][0]);
foreach ($_SERVER['argv'] as $key => $value) {
if (in_array($value, $flags)) {
$argv[] = $value;
$argv[] = $_SERVER['argv'][$key + 1];
}
}
require_once 'Zend/Console/Getopt.php';
$getopt = new Zend_Console_Getopt($this->_getGetoptRules(), $argv);
$getopt->parse();
$this->setModuleName($getopt->getOption($this->getModuleKey()));
$this->setControllerName($getopt->getOption($this->getControllerKey()));
$this->setActionName($getopt->getOption($this->getActionKey()));
}
示例14: main
function main()
{
prepareEnvironment();
try {
$opts = new Zend_Console_Getopt(array('create application|a=s' => 'create application option with required string parameter', 'help' => 'help option with no required parameter'));
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo $e->getUsageMessage();
exit;
}
if ($applicationName = $opts->getOption('a')) {
echo create(APPLICATION, array($applicationName));
exit;
}
echo "UNEXPECTED ERROR: missing argument. Type tn -help to see parameters \n";
exit;
}
示例15: __construct
/**
* Constructor
* @param Zend_Console_Getopt $getopt
*/
public function __construct(Zend_Console_Getopt $getopt)
{
$this->_getopt = $getopt;
try {
$getopt->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo $e->getUsageMessage();
exit(-1);
}
if ($getopt->{$this->getModuleKey()}) {
$this->setModuleName($getopt->{$this->getModuleKey()});
}
if ($getopt->{$this->getControllerKey()}) {
$this->setControllerName($getopt->{$this->getControllerKey()});
}
if ($getopt->{$this->getActionKey()}) {
$this->setActionName($getopt->{$this->getActionKey()});
}
}