如何使用Zend编写示例控制台应用程序?
/Zend/Console/Getopt.php
我只想将值传递给-v
并获取版本信息。
输入为
prjectfolder/console/version.php -v
输出:
Version 1.xxxxx
如何使用简单的PHP在Zend中对此进行编码,send lib包含方法。
答案 0 :(得分:9)
这是我如何处理应用程序的CLI界面的一个小例子。它包括我的Bootstrap和Zend Autoloader。更好的解决方案是更改CLI操作的Bootstrap(不需要调度等等)但我是一个懒惰的人: - )
<?php
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));
define('APPLICATION_ENVIRONMENT', 'development');
/**
* Setup for includes
*/
set_include_path(
APPLICATION_PATH . '/../library' . PATH_SEPARATOR .
APPLICATION_PATH . '/../application/models' . PATH_SEPARATOR .
APPLICATION_PATH . '/../application/extends'. PATH_SEPARATOR .
get_include_path());
/**
* Zend Autoloader
*/
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
/**
* Register my Namespaces for the Autoloader
*/
$autoloader->registerNamespace('My_');
$autoloader->registerNamespace('Db_');
/**
* Include my complete Bootstrap
* @todo change when time is left
*/
require '../application/bootstrap.php';
/**
* Setup the CLI Commands
* ../application/cli.php --add
* ../application/cli.php --scan
* ..
*/
try {
$opts = new Zend_Console_Getopt(
array(
'help' => 'Displays usage information.',
'add' => 'Add the Feeds to the Pipe',
'scan' => 'Scan the Feeds in the Pipe',
'que' => 'Process the Pipe',
)
);
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
exit($e->getMessage() ."\n\n". $e->getUsageMessage());
}
if(isset($opts->help)) {
echo $opts->getUsageMessage();
exit;
}
/**
* Action : add
*/
if(isset($opts->add)) {
// do something
}
/**
* Action : scan
*/
if(isset($opts->scan)) {
// do something
}
/**
* Action : que
*/
if(isset($opts->que)) {
// do something
}
答案 1 :(得分:1)
答案 2 :(得分:-1)
您可以在ZF docs中找到所需的所有详细信息。