CConsoleApplication
鍖 | system.console |
---|---|
缁ф壙 | class CConsoleApplication » CApplication » CModule » CComponent |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CConsoleApplication.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
婧愮爜 | framework/console/CConsoleApplication.php |
CConsoleApplication浠h〃涓涓帶鍒跺彴搴旂敤绋嬪簭銆
CConsoleApplication缁ф壙浜CApplication锛屾彁渚涗簡涓浜涘姛鑳芥潵澶勭悊鎺у埗鍙拌姹傘 涓鑸潵璇达紝瀹冮氳繃鍩轰簬鍛戒护鐨勬柟娉曞鐞 閭d簺閭d簺鎺у埗鍙拌姹傦細
鍛戒护绫绘槸鏀惧湪鐩綍commandPath涓嬮潰銆 杩欎簺绫荤殑鍛藉悕瑙勫垯鏄細<command-name>Command锛屾枃浠跺悕瀛楄窡绫荤殑鍚嶅瓧涓鏍枫 渚嬪锛屸楽hellCommand鈥欑被瀹氫箟浜 涓涓榮hell鈥欏懡浠わ紝 瀹冪殑鏂囦欢鍚嶅瓧涓衡橲hellCommand.php鈥樸
杈撳叆浠ヤ笅鍛戒护琛屾潵杩愯缁堢搴旂敤锛
浣犲彲浠ヤ娇鐢ㄤ笅闈㈠懡浠ゆ潵鏌ョ湅甯姪浠嬬粛锛
CConsoleApplication缁ф壙浜CApplication锛屾彁渚涗簡涓浜涘姛鑳芥潵澶勭悊鎺у埗鍙拌姹傘 涓鑸潵璇达紝瀹冮氳繃鍩轰簬鍛戒护鐨勬柟娉曞鐞 閭d簺閭d簺鎺у埗鍙拌姹傦細
- 涓涓帶鍒跺彴搴旂敤鍖呭惈鐫涓涓垨鑰呭涓彲鑳界殑鐢ㄦ埛鍛戒护锛
- 姣忔潯鐢ㄦ埛鍛戒护閮芥槸浠ョ被鐨勫舰寮忓疄鐜扮殑锛岀户鎵夸簬CConsoleCommand锛
- 鐢ㄦ埛鎸囧畾鍝簺鍛戒护浼氳繍琛屽湪鍛戒护琛岋紱
- 鍛戒护绋嬪簭鏍规嵁鎸囧畾鐨勫弬鏁板鐞嗙敤鎴疯姹傘
鍛戒护绫绘槸鏀惧湪鐩綍commandPath涓嬮潰銆 杩欎簺绫荤殑鍛藉悕瑙勫垯鏄細<command-name>Command锛屾枃浠跺悕瀛楄窡绫荤殑鍚嶅瓧涓鏍枫 渚嬪锛屸楽hellCommand鈥欑被瀹氫箟浜 涓涓榮hell鈥欏懡浠わ紝 瀹冪殑鏂囦欢鍚嶅瓧涓衡橲hellCommand.php鈥樸
杈撳叆浠ヤ笅鍛戒护琛屾潵杩愯缁堢搴旂敤锛
php path/to/entry_script.php <command name> [param 1] [param 2] ...
浣犲彲浠ヤ娇鐢ㄤ笅闈㈠懡浠ゆ潵鏌ョ湅甯姪浠嬬粛锛
php path/to/entry_script.php help <command name>
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
basePath | string | 杩斿洖搴旂敤绋嬪簭鐨勬牴鐩綍銆 | CApplication |
baseUrl | string | 杩斿洖搴旂敤绋嬪簭鐨勭浉瀵筓RL銆 | CApplication |
behaviors | array | the behaviors that should be attached to the module. | CModule |
cache | CCache | 杩斿洖缂撳瓨缁勪欢銆 | CApplication |
charset | string | 搴旂敤绋嬪簭褰撳墠浣跨敤鐨勫瓧绗﹂泦銆傞粯璁や负鈥楿TF-8鈥欍 | CApplication |
commandMap | array | 鍛戒护鍚嶅瓧瀵瑰簲鍒板懡浠ら厤缃
姣忎竴涓懡浠ら厤缃彲浠ユ槸瀛楃涓诧紝鎴栬呮槸涓涓暟缁勩
濡傛灉鏄墠鑰咃紝杩欎釜瀛楃涓插簲璇ユ槸鍛戒护绫荤殑璺緞銆
濡傛灉鏄悗鑰咃紝杩欎釜鏁扮粍涓瀹氳鍖呭惈鈥榗lass鈥欏厓绱
锛堟寚瀹 鍛戒护鐨勭被鍚嶆垨鑰呮槸YiiBase::getPathOfAlias绫荤殑璺緞鍒悕锛
鍏朵綑鐨勫湪鏁扮粍涓殑閿悕锛嶉敭鍊煎浼氳鐢ㄦ潵
鍒濆鍖栫浉鍏崇殑鍛戒护灞炴с備緥濡傦紝
array( 'email'=>array( 'class'=>'path. |
CConsoleApplication |
commandPath | string | 鍖呭惈鍛戒护绫荤殑鐩綍銆傞粯璁ゆ槸鈥榩rotected/commands鈥欍 | CConsoleApplication |
commandRunner | CConsoleCommandRunner | 杩斿洖鍛戒护鎵ц瀵硅薄銆 | CConsoleApplication |
components | array | 杩斿洖搴旂敤缁勪欢銆 | CModule |
controller | CController | 褰撳墠娲诲姩鎺у埗鍣ㄣ備负Null杩斿洖瀹冪殑鍩虹被銆 | CApplication |
coreMessages | CPhpMessageSource | 杩斿洖鏍稿績淇℃伅缈昏瘧缁勪欢銆 | CApplication |
dateFormatter | CDateFormatter | 杩斿洖鏈湴鍖栫殑鏃ユ湡鏍煎紡銆 | CApplication |
db | CDbConnection | 杩斿洖鏁版嵁搴撹繛鎺ョ粍浠躲 | CApplication |
errorHandler | CErrorHandler | 杩斿洖閿欒澶勭悊缁勪欢銆 | CApplication |
extensionPath | string | 杩斿洖绗笁鏂规墿灞曟牴鐩綍銆 | CApplication |
homeUrl | string | 涓婚〉URL | CApplication |
id | string | 杩斿洖搴旂敤绋嬪簭鐨勫敮涓鏍囪瘑绗︺ | CApplication |
language | string | 杩斿洖鐢ㄦ埛姝e湪浣跨敤鐨勫簲鐢ㄧ▼搴忚瑷銆 | CApplication |
locale | CLocale | 杩斿洖鏈湴锛堢幆澧冿級瀹炰緥銆 | CApplication |
localeDataPath | string | 杩斿洖鍖呭惈鏈湴鍖栫殑鏁版嵁鐩綍銆 | CApplication |
messages | CMessageSource | 杩斿洖搴旂敤绋嬪簭淇℃伅缈昏瘧缁勪欢銆 | CApplication |
modulePath | string | 杩斿洖鍖呭惈搴旂敤绋嬪簭妯″潡鐨勭洰褰曘 | CModule |
modules | array | 杩斿洖搴旂敤绋嬪簭褰撳墠宸茬粡瀹夎鐨勬ā鍧椼 | CModule |
name | string | 搴旂敤绋嬪簭鍚嶅瓧銆傞粯璁や负鈥楳y Application鈥欍 | CApplication |
numberFormatter | CNumberFormatter | 鏈湴鍖栨暟瀛楁牸寮忋 灏嗕娇鐢ㄥ綋鍓application locale銆 | CApplication |
params | CAttributeCollection | 杩斿洖鐢ㄦ埛瀹氫箟鐨勫弬鏁般 | CModule |
parentModule | CModule | 杩斿洖鐖舵ā鍧椼 | CModule |
preload | array | the IDs of the application components that should be preloaded. | CModule |
request | CHttpRequest | 杩斿洖璇锋眰缁勪欢銆 | CApplication |
runtimePath | string | 杩斿洖瀛樺偍杩愯鏃舵枃浠剁洰褰曘 | CApplication |
securityManager | CSecurityManager | 杩斿洖瀹夊叏绠$悊鍣ㄧ粍浠躲 | CApplication |
sourceLanguage | string | 搴旂敤绋嬪簭浣跨敤璇█. | CApplication |
statePersister | CStatePersister | 杩斿洖鎸佷箙鐘舵佺粍浠躲 | CApplication |
timeZone | string | 杩斿洖搴旂敤绋嬪簭鎵浣跨敤鐨勬椂鍖恒 | CApplication |
urlManager | CUrlManager | 杩斿洖URL绠$悊鍣ㄧ粍浠躲 | CApplication |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
createCommandRunner() | 鍒涘缓鍛戒护鎵ц瀵硅薄瀹炰緥銆 | CConsoleApplication |
init() | 閫氳繃鍒涘缓鍛戒护鎵ц瀵硅薄鍒濆鍖栬繖涓簲鐢ㄣ | CConsoleApplication |
initSystemHandlers() | 鍒濆鍖栫被鑷姩鍔犺浇鍣ㄥ拰閿欒澶勭悊銆 | CApplication |
preinit() | 妯″潡棰勫垵濮嬪寲銆 | CModule |
preloadComponents() | 鍔犺浇闈欐佸簲鐢ㄧ粍浠躲 | CModule |
registerCoreComponents() | 娉ㄥ唽鏍稿績搴旂敤缁勪欢銆 | CApplication |
浜嬩欢
浜嬩欢 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
onBeginRequest | 搴旂敤绋嬪簭澶勭悊璇锋眰涔嬪墠鍙戣捣銆 | CApplication |
onEndRequest | 搴旂敤绋嬪簭澶勭悊璇锋眰涔嬪悗鍙戣捣銆 | CApplication |
onException | 褰撲竴涓湭鎹曡幏鐨凱HP寮傚父鍙戠敓鏃跺彂璧枫 | CApplication |
onError | 褰撲竴涓狿HP寮傚父閿欒鍙戠敓鏃跺彂璧枫 | CApplication |
灞炴ц缁
commandMap
灞炴
public array $commandMap;
鍛戒护鍚嶅瓧瀵瑰簲鍒板懡浠ら厤缃 姣忎竴涓懡浠ら厤缃彲浠ユ槸瀛楃涓诧紝鎴栬呮槸涓涓暟缁勩 濡傛灉鏄墠鑰咃紝杩欎釜瀛楃涓插簲璇ユ槸鍛戒护绫荤殑璺緞銆 濡傛灉鏄悗鑰咃紝杩欎釜鏁扮粍涓瀹氳鍖呭惈鈥榗lass鈥欏厓绱 锛堟寚瀹 鍛戒护鐨勭被鍚嶆垨鑰呮槸YiiBase::getPathOfAlias绫荤殑璺緞鍒悕锛 鍏朵綑鐨勫湪鏁扮粍涓殑閿悕锛嶉敭鍊煎浼氳鐢ㄦ潵 鍒濆鍖栫浉鍏崇殑鍛戒护灞炴с備緥濡傦紝
array( 'email'=>array( 'class'=>'path.to.Mailer', 'interval'=>3600, ), 'log'=>'path/to/LoggerCommand.php', )
commandPath
灞炴
鍖呭惈鍛戒护绫荤殑鐩綍銆傞粯璁ゆ槸鈥榩rotected/commands鈥欍
commandRunner
灞炴
鍙
public CConsoleCommandRunner getCommandRunner()
杩斿洖鍛戒护鎵ц瀵硅薄銆
鏂规硶璇︾粏
createCommandRunner()
鏂规硶
protected CConsoleCommandRunner createCommandRunner()
| ||
{return} | CConsoleCommandRunner | 鍛戒护鎵ц瀵硅薄 |
婧愮爜锛 framework/console/CConsoleApplication.php#98 (鏄剧ず)
protected function createCommandRunner()
{
return new CConsoleCommandRunner;
}
鍒涘缓鍛戒护鎵ц瀵硅薄瀹炰緥銆
displayError()
鏂规硶
public void displayError(integer $code, string $message, string $file, string $line)
| ||
$code | integer | 閿欒浠g爜 |
$message | string | 閿欒淇℃伅 |
$file | string | 閿欒鏂囦欢 |
$line | string | 閿欒鐨勮 |
婧愮爜锛 framework/console/CConsoleApplication.php#112 (鏄剧ず)
public function displayError($code,$message,$file,$line)
{
echo "PHP Error[$code]: $message\n";
echo " in file $file at line $line\n";
$trace=debug_backtrace();
// skip the first 4 stacks as they do not tell the error position
if(count($trace)>4)
$trace=array_slice($trace,4);
foreach($trace as $i=>$t)
{
if(!isset($t['file']))
$t['file']='unknown';
if(!isset($t['line']))
$t['line']=0;
if(!isset($t['function']))
$t['function']='unknown';
echo "#$i {$t['file']}({$t['line']}): ";
if(isset($t['object']) && is_object($t['object']))
echo get_class($t['object']).'->';
echo "{$t['function']}()\n";
}
}
鏄剧ず鎹曟崏鍒扮殑 PHP 閿欒銆 褰撴病鏈夊浜庢椿鍔ㄧ殑閿欒澶勭悊绫荤殑鏃跺欙紝 杩欎釜鏂规硶浼氬湪缁堢妯″紡涓嬫樉绀洪敊璇
displayException()
鏂规硶
public void displayException(Exception $exception)
| ||
$exception | Exception | 娌℃湁鎹曟崏鐨勫紓甯 |
婧愮爜锛 framework/console/CConsoleApplication.php#141 (鏄剧ず)
public function displayException($exception)
{
echo $exception;
}
鏄剧ず娌℃湁鎹曡幏鍒扮殑寮傚父銆 褰撴病鏈夊浜庢椿鍔ㄧ殑閿欒澶勭悊绫荤殑鏃跺欙紝 杩欎釜鏂规硶浼氬湪缁堢妯″紡涓嬫樉绀洪敊璇
getCommandPath()
鏂规硶
public string getCommandPath()
| ||
{return} | string | 鍖呭惈鍛戒护绫荤殑鐩綍銆傞粯璁ゆ槸鈥榩rotected/commands鈥欍 |
婧愮爜锛 framework/console/CConsoleApplication.php#149 (鏄剧ず)
public function getCommandPath()
{
$applicationCommandPath = $this->getBasePath().DIRECTORY_SEPARATOR.'commands';
if($this->_commandPath===null && file_exists($applicationCommandPath))
$this->setCommandPath($applicationCommandPath);
return $this->_commandPath;
}
getCommandRunner()
鏂规硶
public CConsoleCommandRunner getCommandRunner()
| ||
{return} | CConsoleCommandRunner | 鍛戒护鎵ц瀵硅薄銆 |
婧愮爜锛 framework/console/CConsoleApplication.php#172 (鏄剧ず)
public function getCommandRunner()
{
return $this->_runner;
}
杩斿洖鍛戒护鎵ц瀵硅薄銆
init()
鏂规硶
protected void init()
|
婧愮爜锛 framework/console/CConsoleApplication.php#75 (鏄剧ず)
protected function init()
{
parent::init();
if(!isset($_SERVER['argv'])) // || strncasecmp(php_sapi_name(),'cli',3))
die('This script must be run from the command line.');
$this->_runner=$this->createCommandRunner();
$this->_runner->commands=$this->commandMap;
$this->_runner->addCommands($this->getCommandPath());
}
閫氳繃鍒涘缓鍛戒护鎵ц瀵硅薄鍒濆鍖栬繖涓簲鐢ㄣ
processRequest()
鏂规硶
public void processRequest()
|
婧愮爜锛 framework/console/CConsoleApplication.php#89 (鏄剧ず)
public function processRequest()
{
$this->_runner->run($_SERVER['argv']);
}
澶勭悊鐢ㄦ埛璇锋眰銆 杩欎釜鏂规硶鍒涘缓涓涓粓绔懡浠ゆ墽琛屽璞℃潵澶勭悊涓鑸殑鐢ㄦ埛鍛戒护銆
setCommandPath()
鏂规硶
public void setCommandPath(string $value)
| ||
$value | string | 鍖呭惈鍛戒护绫荤殑鐩綍銆 |
婧愮爜锛 framework/console/CConsoleApplication.php#161 (鏄剧ず)
public function setCommandPath($value)
{
if(($this->_commandPath=realpath($value))===false || !is_dir($this->_commandPath))
throw new CException(Yii::t('yii','The command path "{path}" is not a valid directory.',
array('{path}'=>$value)));
}