标签:std UNC efi trap tde image dir 目录 unset
max_execution_time
)被设置为无限值。$argc
与 $argv
两个变量总是存在。并且携带了参数个数与实际的参数数组值。<?php
/**
* 命令行运行入口文件。
*/
use finger\App;
error_reporting(0);
define('TIMESTAMP', time());
ini_set('default_socket_timeout', -1);
define('APP_PATH', dirname(dirname(__FILE__)));
require(APP_PATH . '/vendor/autoload.php');
require(APP_PATH . '/config/api_constants.php');
$app = new \Yaf_Application(APP_PATH . "/config/api.ini", 'conf');
// 根据是否存在 .env 进行配置文件的加载。
if (file_exists('../.env')) {
$cfgObj = new \Yaf_Config_Ini('../.env', '');
$config = $cfgObj->toArray();
} else {
$config = $app->getConfig()->toArray();
}
(new App($config));
$app->bootstrap();
if (!isset($argv[1])) {
exit("Please enter the route to execute. Example: the php cli.php Index/Index!\n");
}
$routeArr = explode('/', $argv[1]);
if (count($routeArr) != 2) {
exit("Please enter the route to execute. Example: the php cli.php Index/Index!\n");
}
$controllerName = $routeArr[0];
$actionName = $routeArr[1];
// 删除路由参数。
unset($argv[0], $argv[1]);
$params = [];
if (isset($argv[2])) {
parse_str($argv[2], $params);
}
$request = new \Yaf_Request_Simple('CLI', 'Cli', $controllerName, $actionName, $params);
\Yaf_Application::app()->getDispatcher()->returnResponse(true)->dispatch($request);
<?php
/**
* Cli 模式专用 Controller。
*/
namespace Common\controllers;
use finger\App;
use finger\Core;
class Cli extends Common
{
/**
* 重写父方法, Cli 模式关闭模板渲染。
* @return void
*/
public function init()
{
parent::init();
$this->end();
if (!App::isCli()) { // 非 CLI 模式运行则报错。
Core::exception(STATUS_SERVER_ERROR, '不是 Cli 模式');
}
}
}
<?php
/**
* 短信定时器和常驻进程。
*/
use Services\Sms\Consume;
class SmsController extends \Common\controllers\Cli
{
/**
* 短信发送消费常驻进程。
*
* -- 进入项目根目录下的 public 文件夹,然后如下方式启动:
* -- $ php cli.php Sms/send
*
*/
public function sendAction()
{
echo "sms".PHP_EOL;
}
}
/usr/local/php7.2/bin/php cli.php Sms/send
标签:std UNC efi trap tde image dir 目录 unset
原文地址:https://www.cnblogs.com/jiqing9006/p/12111753.html