CConsoleApplication
| Пакет | system.console |
|---|---|
| Наследование | класс CConsoleApplication » CApplication » CModule » CComponent |
| С момента | 1.0 |
| Исходный код | framework/console/CConsoleApplication.php |
CConsoleApplication расширяет CApplication, предоставляя функциональность, специфичную для консольных запросов. В частности, он обрабатывает консольные запросы с помощью подхода, основанного на командах:
- Консольное приложение состоит из одной или нескольких возможных команд пользователя;
- Каждая команда пользователя реализуется как класс, расширяющий CConsoleCommand;
- Пользователь указывает, какую команду выполнить в командной строке;
- Команда обрабатывает запрос пользователя с указанными параметрами.
Классы команд находятся в каталоге commandPath. Имя класса следует шаблону: <имя-команды>Command, а имя файла совпадает с именем класса. Например, класс 'ShellCommand' определяет команду 'shell', а имя файла класса — 'ShellCommand.php'.
Для запуска консольного приложения введите следующее в командной строке:
php path/to/entry_script.php <command name> [param 1] [param 2] ...
Вы можете использовать следующее, чтобы увидеть инструкции по использованию команды:
php path/to/entry_script.php help <command name>
Свойства публичного доступа
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| basePath | строка | Возвращает корневой путь приложения. | CApplication |
| baseUrl | строка | Возвращает относительный URL приложения. | CApplication |
| behaviors | массив | поведения, которые должны быть присоединены к модулю. | CModule |
| cache | CCache | Возвращает компонент кэша. | CApplication |
| charset | строка | кодировка, используемая в данный момент для приложения. | CApplication |
| command | CConsoleCommand|null | Возвращает выполняемую в данный момент команду. | CConsoleApplication |
| commandMap | массив | отображение имени команды на конфигурацию команды. | CConsoleApplication |
| commandPath | строка | каталог, содержащий классы команд. | CConsoleApplication |
| commandRunner | CConsoleCommandRunner | Возвращает обработчик команд. | CConsoleApplication |
| components | массив | Возвращает компоненты приложения. | CModule |
| controller | CController | текущий активный контроллер. | CApplication |
| coreMessages | CPhpMessageSource | Возвращает компонент перевода сообщений ядра. | CApplication |
| dateFormatter | CDateFormatter | Возвращает форматировщик дат, зависящий от локали. | CApplication |
| db | CDbConnection | Возвращает компонент подключения к базе данных. | CApplication |
| errorHandler | CErrorHandler | Возвращает компонент обработчика ошибок. | CApplication |
| extensionPath | строка | Возвращает корневой каталог, содержащий все сторонние расширения. | CApplication |
| format | CFormatter | Возвращает компонент форматирования. | CApplication |
| homeUrl | строка | URL домашней страницы | CApplication |
| id | строка | Возвращает уникальный идентификатор приложения. | CApplication |
| language | строка | Возвращает язык, используемый пользователем, и к которому должно быть нацелено приложение. | CApplication |
| locale | CLocale | Возвращает экземпляр локали. | CApplication |
| localeClass | строка | класс, используемый для получения данных локали. | CApplication |
| localeDataPath | строка | Возвращает каталог, содержащий данные локали. | CApplication |
| messages | CMessageSource | Возвращает компонент перевода сообщений приложения. | CApplication |
| modulePath | строка | Возвращает каталог, содержащий модули приложения. | CModule |
| modules | массив | Возвращает конфигурацию установленных модулей. | CModule |
| name | строка | имя приложения. | CApplication |
| numberFormatter | CNumberFormatter | форматировщик чисел, зависящий от локали. | CApplication |
| params | CAttributeCollection | Возвращает пользовательские параметры. | CModule |
| parentModule | CModule | Возвращает родительский модуль. | CModule |
| preload | массив | идентификаторы компонентов приложения, которые должны быть предварительно загружены. | CModule |
| request | CHttpRequest | Возвращает компонент запроса. | CApplication |
| runtimePath | строка | Возвращает каталог, в котором хранятся файлы runtime. | CApplication |
| securityManager | CSecurityManager | Возвращает компонент управления безопасностью. | CApplication |
| sourceLanguage | строка | язык, на котором написано приложение. | CApplication |
| statePersister | CStatePersister | Возвращает компонент сохранения состояния. | CApplication |
| timeZone | строка | Возвращает часовой пояс, используемый этим приложением. | CApplication |
| urlManager | CUrlManager | Возвращает компонент менеджера URL. | CApplication |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CApplication |
| __get() | Магический метод получения значения свойства. | CModule |
| __isset() | Проверяет, имеет ли свойство значение, отличное от null. | CModule |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик события к событию. | CComponent |
| canGetProperty() | Определяет, можно ли получить свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clearGlobalState() | Очищает глобальное значение. | CApplication |
| configure() | Настраивает модуль заданными настройками. | CModule |
| createAbsoluteUrl() | Создаёт абсолютный URL на основе заданной информации о контроллере и действии. | CApplication |
| createUrl() | Создаёт относительный URL на основе заданной информации о контроллере и действии. | CApplication |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик события. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения к данному компоненту. | CComponent |
| displayError() | Отображает полученную ошибку PHP. | CConsoleApplication |
| displayException() | Отображает неперехваченное исключение PHP. | CConsoleApplication |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые поведения к данному компоненту. | CComponent |
| end() | Завершает работу приложения. | CApplication |
| evaluateExpression() | Вычисляет PHP выражение или обратный вызов в контексте этого компонента. | CComponent |
| findLocalizedFile() | Возвращает локализованную версию указанного файла. | CApplication |
| getBasePath() | Возвращает корневой путь приложения. | CApplication |
| getBaseUrl() | Возвращает относительный URL для приложения. | CApplication |
| getCache() | Возвращает компонент кэша. | CApplication |
| getCommand() | Возвращает выполняемую в данный момент команду. | CConsoleApplication |
| getCommandPath() | Возвращает каталог, содержащий классы команд. По умолчанию 'protected/commands'. | CConsoleApplication |
| getCommandRunner() | Возвращает диспетчер команд. | CConsoleApplication |
| getComponent() | Возвращает именованный компонент приложения. | CModule |
| getComponents() | Возвращает компоненты приложения. | CModule |
| getController() | Возвращает текущий активный контроллер. В этом базовом классе возвращается null. | CApplication |
| getCoreMessages() | Возвращает компонент перевода основных сообщений. | CApplication |
| getDateFormatter() | Возвращает форматировщик даты, зависящий от локали. | CApplication |
| getDb() | Возвращает компонент подключения к базе данных. | CApplication |
| getErrorHandler() | Возвращает компонент обработчика ошибок. | CApplication |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getExtensionPath() | Возвращает корневой каталог, содержащий все сторонние расширения. | CApplication |
| getFormat() | Возвращает компонент форматирования. | CApplication |
| getGlobalState() | Возвращает глобальное значение. | CApplication |
| getHomeUrl() | Возвращает URL главной страницы. | CApplication |
| getId() | Возвращает уникальный идентификатор приложения. | CApplication |
| getLanguage() | Возвращает язык, используемый пользователем, и к которому должно быть ориентировано приложение. | CApplication |
| getLocale() | Возвращает экземпляр локали. | CApplication |
| getLocaleDataPath() | Возвращает каталог, содержащий данные локали. | CApplication |
| getMessages() | Возвращает компонент перевода сообщений приложения. | CApplication |
| getModule() | Возвращает именованный модуль приложения. | CModule |
| getModulePath() | Возвращает каталог, содержащий модули приложения. | CModule |
| getModules() | Возвращает конфигурацию установленных модулей. | CModule |
| getNumberFormatter() | Возвращает форматировщик чисел, зависящий от локали. Будет использована текущая локальная настройка приложения. | CApplication |
| getParams() | Возвращает пользовательские параметры. | CModule |
| getParentModule() | Возвращает родительский модуль. | CModule |
| getRequest() | Возвращает компонент запроса. | CApplication |
| getRuntimePath() | Возвращает каталог, в котором хранятся файлы выполнения. | CApplication |
| getSecurityManager() | Возвращает компонент менеджера безопасности. | CApplication |
| getStatePersister() | Возвращает компонент сохранения состояния. | CApplication |
| getTimeZone() | Возвращает часовой пояс, используемый этим приложением. | CApplication |
| getUrlManager() | Возвращает компонент URL-менеджера. | CApplication |
| handleError() | Обрабатывает ошибки выполнения PHP, такие как предупреждения и сообщения. | CApplication |
| handleException() | Обрабатывает необработанные исключения PHP. | CApplication |
| hasComponent() | Проверяет, существует ли компонент с заданным именем. | CModule |
| hasEvent() | Определяет, определен ли данный событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для данного события. | CComponent |
| hasModule() | Возвращает значение, указывающее, установлен ли указанный модуль. | CModule |
| hasProperty() | Определяет, определено ли данное свойство. | CComponent |
| loadGlobalState() | Загружает данные глобального состояния из постоянного хранилища. | CApplication |
| onBeginRequest() | Вызывается НЕПОСРЕДСТВЕННО ПЕРЕД тем, как приложение обработает запрос. | CApplication |
| onEndRequest() | Вызывается НЕПОСРЕДСТВЕННО ПОСЛЕ того, как приложение обработает запрос. | CApplication |
| onError() | Вызывается при возникновении ошибки выполнения PHP. | CApplication |
| onException() | Вызывается при возникновении необработанного исключения PHP. | CApplication |
| processRequest() | Обрабатывает пользовательский запрос. | CConsoleApplication |
| raiseEvent() | Вызывает событие. | CComponent |
| run() | Запускает приложение. | CApplication |
| saveGlobalState() | Сохраняет данные глобального состояния в постоянное хранилище. | CApplication |
| setAliases() | Определяет корневые псевдонимы. | CModule |
| setBasePath() | Устанавливает корневой каталог приложения. | CApplication |
| setCommand() | Это метод-короткая запись для CConsoleCommandRunner::setCommand(). | CConsoleApplication |
| setCommandPath() | Устанавливает каталог, содержащий классы команд. | CConsoleApplication |
| setComponent() | Добавляет компонент под управление модуля. | CModule |
| setComponents() | Устанавливает компоненты приложения. | CModule |
| setExtensionPath() | Устанавливает корневой каталог, содержащий все сторонние расширения. | CApplication |
| setGlobalState() | Устанавливает глобальное значение. | CApplication |
| setHomeUrl() | Устанавливает URL домашней страницы | CApplication |
| setId() | Устанавливает уникальный идентификатор для приложения. | CApplication |
| setImport() | Устанавливает псевдонимы, используемые в модуле. | CModule |
| setLanguage() | Указывает язык, на который ориентировано приложение. | CApplication |
| setLocaleDataPath() | Устанавливает каталог, содержащий данные локали. | CApplication |
| setModulePath() | Устанавливает каталог, содержащий модули приложения. | CModule |
| setModules() | Настраивает подмодули этого модуля. | CModule |
| setParams() | Устанавливает пользовательские параметры. | CModule |
| setRuntimePath() | Устанавливает каталог, в котором хранятся файлы выполнения. | CApplication |
| setTimeZone() | Устанавливает часовой пояс, используемый этим приложением. | CApplication |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createCommandRunner() | Создаёт экземпляр исполнителя команд. | CConsoleApplication |
| init() | Инициализирует приложение, создавая исполнителя команд. | CConsoleApplication |
| initSystemHandlers() | Инициализирует обработчики ошибок. | CApplication |
| preinit() | Предварительно инициализирует модуль. | CModule |
| preloadComponents() | Загружает статические компоненты приложения. | CModule |
| registerCoreComponents() | Регистрирует основные компоненты приложения. | CApplication |
События
| Событие | Описание | Определено в |
|---|---|---|
| onBeginRequest | Вызывается НЕПОСРЕДСТВЕННО ПЕРЕД обработкой запроса приложением. | CApplication |
| onEndRequest | Вызывается НЕПОСРЕДСТВЕННО ПОСЛЕ обработки запроса приложением. | CApplication |
| onException | Вызывается при возникновении необработанного исключения PHP. | CApplication |
| onError | Вызывается при возникновении ошибки выполнения PHP. | CApplication |
Подробное описание свойств
command свойство (доступно с версии v1.1.14)
public CConsoleCommand|null getCommand()
public void setCommand(CConsoleCommand $value)
Возвращает текущую выполняемую команду. Это сокращенный метод для CConsoleCommandRunner::getCommand().
commandMap свойство
public array $commandMap;
отображение имени команды на конфигурацию команды. Каждая конфигурация команды может быть либо строкой, либо массивом. Если строка, то это путь к файлу класса команды. Если массив, то он должен содержать элемент 'class', указывающий имя класса команды или псевдоним пути к классу. Остальные пары имя-значение в массиве используются для инициализации соответствующих свойств команды. Например,
array(
'email'=>array(
'class'=>'path.to.Mailer',
'interval'=>3600,
),
'log'=>'path/to/LoggerCommand.php',
)
commandPath свойство
public string getCommandPath()
public void setCommandPath(string $value)
каталог, содержащий классы команд. По умолчанию 'protected/commands'.
commandRunner свойство только для чтения
public CConsoleCommandRunner getCommandRunner()
Возвращает обработчик команд.
Подробное описание методов
createCommandRunner() метод
protected CConsoleCommandRunner createCommandRunner() | ||
| {return} | CConsoleCommandRunner | обработчик команд |
protected function createCommandRunner()
{
return new CConsoleCommandRunner;
}
Создаёт экземпляр обработчика команд.
displayError() метод
public void displayError(integer $code, string $message, string $file, string $line) | ||
| $code | целое | код ошибки |
| $message | строка | сообщение об ошибке |
| $file | строка | файл ошибки |
| $line | строка | строка ошибки |
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 | Исключение | неперехваченное исключение |
public function displayException($exception)
{
echo $exception;
}
Отображает неперехваченное исключение PHP. Этот метод отображает исключение в консольном режиме, если нет активного обработчика ошибок.
getCommand() метод (доступно с версии v1.1.14)
public CConsoleCommand|null getCommand() | ||
| {return} | CConsoleCommand|null | текущая активная команда. |
public function getCommand()
{
return $this->getCommandRunner()->getCommand();
}
Возвращает текущую выполняемую команду. Это сокращенный метод для CConsoleCommandRunner::getCommand().
getCommandPath() метод
public string getCommandPath() | ||
| {return} | строка | каталог, содержащий классы команд. По умолчанию 'protected/commands'. |
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 | обработчик команд. |
public function getCommandRunner()
{
return $this->_runner;
}
Возвращает обработчик команд.
init() метод
protected void init() |
protected function init()
{
parent::init();
if(empty($_SERVER['argv']))
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() |
public function processRequest()
{
$exitCode=$this->_runner->run($_SERVER['argv']);
if(is_int($exitCode))
$this->end($exitCode);
}
Обрабатывает пользовательский запрос. Этот метод использует обработчик консольных команд для обработки конкретной пользовательской команды. С версии 1.1.11 этот метод завершит приложение с кодом выхода, если он возвращается пользовательской командой.
setCommand() метод (доступно с версии v1.1.14)
public void setCommand(CConsoleCommand $value) | ||
| $value | CConsoleCommand | текущая активная команда. |
public function setCommand($value)
{
$this->getCommandRunner()->setCommand($value);
}
Это сокращенный метод для CConsoleCommandRunner::setCommand().
setCommandPath() метод
public void setCommandPath(string $value) | ||
| $value | строка | каталог, содержащий классы команд. |
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)));
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CConsoleApplication