您需要爲項目創建一個CLI引導。
- Web應用程序的默認應用程序類別爲
\Phalcon\Mvc\Application
。相反,您應該使用\Phalcon\Cli\Console
用於cli應用程序。
- Web應用程序的默認DI類是
\Phalcon\Di\FactoryDefault
。相反,您應該爲cli應用程序使用\Phalcon\Di\FactoryDefault\Cli
。
- Web應用程序的默認分派器類是
Phalcon\Mvc\Dispatcher
。相反,你應該使用Phalcon\Cli\Dispatcher
cli應用程序。
- Web應用程序的默認路由器類別爲
Phalcon\Mvc\Router
。相反,您應該爲cli應用程序使用Phalcon\Cli\Router
。
請注意,我提到的類是Phalcon 2.0。我不知道,如果他們是爾康3.
這裏同樣是documentation for cli applications in phalcon.
您可以使用if語句有一些相同的配置文件。例如:
if (php_sapi_name() == "cli") {
$di = new Phalcon\Di\FactoryDefault\Cli();
} else {
$di = new Phalcon\Di\FactoryDefault();
}
if (php_sapi_name() === "cli") {
$di->set('dispatcher', function() {
$dispatcher = new Phalcon\CLI\Dispatcher();
$dispatcher->setDefaultNamespace('Project\\Tasks');
return $dispatcher;
});
} else {
$di->set('dispatcher', function() {
$dispatcher = new Phalcon\Mvc\Dispatcher();
$dispatcher->setDefaultNamespace('Project\\Controllers');
return $dispatcher;
});
}
您可能能夠使用控制器類使用CLI路由。但我會推薦使用獨立的任務。
在創建cli引導文件(我們稱之爲cli.php)後,您可以爲php #!/usr/bin/env php
添加shebang並使該文件成爲可執行文件。然後你可以運行你的任務cli.php {taskname}
'cd'是改變目錄,它應該至少以'php'開頭 – nogad
你能舉個例子嗎? @nogad –
http://stackoverflow.com/questions/2689284/executing-php-with-crontab 我的PHP路徑一直是/ usr/bin/php。這個問題的接受答案告訴你如何找到你的。我不確定如何調用功能思想。 – tjfo