Spec-Zone.ru › Yii 1.1

CConsoleCommandRunner

Пакет system.console
Наследование класс CConsoleCommandRunner » CComponent
С момента 1.0
Исходный код framework/console/CConsoleCommandRunner.php
CConsoleCommandRunner управляет командами и выполняет запрошенную команду.

Общественные свойства

Свойство Тип Описание Определено
command CConsoleCommand|null Возвращает текущую выполняемую команду. CConsoleCommandRunner
commands массив список всех доступных команд (имя команды=>конфигурация команды). CConsoleCommandRunner
scriptName строка имя входного скрипта CConsoleCommandRunner

Общественные методы

Метод Описание Определено
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
addCommands() Добавляет команды из указанного пути к командам. CConsoleCommandRunner
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
createCommand() CConsoleCommandRunner
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединенное поведение. CComponent
disableBehaviors() Отключает все присоединенные к этому компоненту поведения. CComponent
enableBehavior() Включает присоединенное поведение. CComponent
enableBehaviors() Включает все присоединенные к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP выражение или обратный вызов в контексте этого компонента. CComponent
findCommands() Ищет команды в указанном каталоге. CConsoleCommandRunner
getCommand() Возвращает текущую выполняемую команду. CConsoleCommandRunner
getEventHandlers() Возвращает список присоединенных обработчиков событий для события. CComponent
getScriptName() Возвращает имя входного скрипта CConsoleCommandRunner
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеет ли указанное событие присоединенные обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Возбуждает событие. CComponent
run() Выполняет запрошенную команду. CConsoleCommandRunner
setCommand() Устанавливает текущую активную команду. CConsoleCommandRunner

Подробности о свойствах

command свойство (доступно с версии 1.1.14)

public CConsoleCommand|null getCommand()
public void setCommand(CConsoleCommand $value)

Возвращает текущую выполняемую команду.

commands свойство

public array $commands;

список всех доступных команд (имя команды=>конфигурация команды). Каждая конфигурация команды может быть либо строкой, либо массивом. Если это строка, строка должна содержать имя класса или псевдоним пути к классу команды. Если это массив, массив должен содержать элемент 'class', который определяет имя класса команды или псевдоним пути к классу. Остальные пары имя-значение в массиве используются для инициализации соответствующих свойств команды. Например,

array(
  'email'=>array(
     'class'=>'path.to.Mailer',
     'interval'=>3600,
  ),
  'log'=>'path.to.LoggerCommand',
)

scriptName свойство только для чтения

public string getScriptName()

имя входного скрипта

Подробности о методах

addCommands() метод

public void addCommands(string $path)
$path строка псевдоним каталога, содержащего файлы классов команд.
Исходный код: framework/console/CConsoleCommandRunner.php#128 (показать)
public function addCommands($path)
{
    if((
$commands=$this->findCommands($path))!==array())
    {
        foreach(
$commands as $name=>$file)
        {
            if(!isset(
$this->commands[$name]))
                
$this->commands[$name]=$file;
        }
    }
}

Добавляет команды из указанного пути к командам. Если команда уже существует, новая команда будет проигнорирована.

createCommand() метод

public CConsoleCommand createCommand(string $name)
$name строка имя команды (регистронезависимое)
{return} CConsoleCommand объект команды. Null, если имя неверно.
Исходный код: framework/console/CConsoleCommandRunner.php#144 (показать)
public function createCommand($name)
{
    
$name=strtolower($name);

    
$command=null;
    if(isset(
$this->commands[$name]))
        
$command=$this->commands[$name];
    else
    {
        
$commands=array_change_key_case($this->commands);
        if(isset(
$commands[$name]))
            
$command=$commands[$name];
    }

    if(
$command!==null)
    {
        if(
is_string($command)) // class file path or alias
        
{
            if(
strpos($command,'/')!==false || strpos($command,'\\')!==false)
            {
                
$className=substr(basename($command),0,-4);
                if(!
class_exists($className,false))
                    require_once(
$command);
            }
            else 
// an alias
                
$className=Yii::import($command);
            return new 
$className($name,$this);
        }
        else 
// an array configuration
            
return Yii::createComponent($command,$name,$this);
    }
    elseif(
$name==='help')
        return new 
CHelpCommand('help',$this);
    else
        return 
null;
}

findCommands() метод

public array findCommands(string $path)
$path строка каталог, содержащий файлы классов команд.
{return} массив список команд (имя команды=>файл класса команды)
Исходный код: framework/console/CConsoleCommandRunner.php#108 (показать)
public function findCommands($path)
{
    if((
$dir=@opendir($path))===false)
        return array();
    
$commands=array();
    while((
$name=readdir($dir))!==false)
    {
        
$file=$path.DIRECTORY_SEPARATOR.$name;
        if(!
strcasecmp(substr($name,-11),'Command.php') && is_file($file))
            
$commands[strtolower(substr($name,0,-11))]=$file;
    }
    
closedir($dir);
    return 
$commands;
}

Ищет команды в указанном каталоге.

getCommand() метод (доступен с версии v1.1.14)

public CConsoleCommand|null getCommand()
{возврат} CConsoleCommand|null текущая активная команда.
Исходный код: framework/console/CConsoleCommandRunner.php#89 (показать)
public function getCommand()
{
    return 
$this->_command;
}

Возвращает текущую выполняемую команду.

getScriptName() метод

public string getScriptName()
{возврат} string имя сценария входа
Исходный код: framework/console/CConsoleCommandRunner.php#79 (показать)
public function getScriptName()
{
    return 
$this->_scriptName;
}

run() метод

public integer|null run(array $args)
$args array список параметров, предоставленных пользователем (включая имя сценария входа и имя команды).
{возврат} integer|null код завершения приложения, возвращённый командой. Если возвращается null, приложение не завершится явно. Смотрите также CConsoleApplication::processRequest(). (значение возврата доступно с версии 1.1.11)
Исходный код: framework/console/CConsoleCommandRunner.php#54 (показать)
public function run($args)
{
    
$this->_scriptName=$args[0];
    
array_shift($args);
    if(isset(
$args[0]))
    {
        
$name=$args[0];
        
array_shift($args);
    }
    else
        
$name='help';

    
$oldCommand=$this->_command;
    if((
$command=$this->createCommand($name))===null)
        
$command=$this->createCommand('help');
    
$this->_command=$command;
    
$command->init();
    
$exitCode=$command->run($args);
    
$this->_command=$oldCommand;
    return 
$exitCode;
}

Выполняет запрошенную команду.

setCommand() метод (доступен с версии v1.1.14)

public void setCommand(CConsoleCommand $value)
$value CConsoleCommand текущая активная команда.
Исходный код: framework/console/CConsoleCommandRunner.php#98 (показать)
public function setCommand($value)
{
    
$this->_command=$value;
}

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CConsoleCommandRunner

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API