Класс CommandTask
Базовый класс для отражения команд оболочки Shell.
- Cake\Console\Shell использует Cake\ORM\Locator\LocatorAwareTrait , Cake\Log\LogTrait , Cake\Utility\MergeVariablesTrait , Cake\Datasource\ModelAwareTrait
-
Cake\Shell\Task\CommandTask
Унаследованные константы
Унаследованные свойства
-
OptionParser,Tasks,_io,_taskMap,args,command,interactive,name,params,plugin,rootName,taskNames,tasks_tableLocator_modelFactories,_modelType,modelClass
Краткое описание методов
- _appendShells() protectedСканирует указанные пути для оболочек и добавляет их в $shellList
- _findShells() protectedИщет оболочки в $path и добавляет их в $shellList
- _scanDir() protected
Сканирует директорию на наличие файлов .php и возвращает имена классов, которые должны быть в них.
- commands() publicВозвращает список всех команд
- getShell() publicПолучает экземпляр Shell для заданной команды
- getShellList() publicПолучает список команд оболочки.
- options() publicПолучает список опций для заданной команды или подкоманды
- subCommands() publicВозвращает список подкоманд для заданной команды
Подробное описание методов
_appendShells()source protected
_appendShells( string $type , array $shells , array $shellList , array $skip )
Сканирует указанные пути для оболочек и добавляет их в $shellList
Параметры
- string
$type - Тип объекта.
- array
$shells - Имя оболочки.
- array
$shellList - Список оболочек.
- array
$skip - Список имён команд, которые следует пропустить.
Возвращает
arrayОбновлённый $shellList
_findShells()source protected
_findShells( array $shellList , string $path , string $key , array $skip )
Ищет оболочки в $path и добавляет их в $shellList
Параметры
- array
$shellList - Массив списка оболочек.
- string
$path - Путь для поиска.
- string
$key - Ключ для добавления оболочек
- array
$skip - Список команд, которые нужно исключить.
Возвращает
arrayОбновлённый список оболочек.
_scanDir()source protected
_scanDir( string $dir )
Сканирует директорию на наличие файлов .php и возвращает имена классов, которые должны быть в них.
Параметры
- string
$dir - Директория для чтения.
Возвращает
arrayСписок имён классов оболочки на основе соглашений.
getShell()source public
getShell( string $commandName )
Получает экземпляр Shell для заданной команды
Параметры
- string
$commandName - Команда, которую вы хотите.
Возвращает
Cake\Console\Shell|booleanЭкземпляр Shell, если команда найдена, в противном случае false.
options()source public
options( string $commandName , string $subCommandName = '' )
Получает список опций для заданной команды или подкоманды
Параметры
- string
$commandName - Команда, для которой нужно получить список опций.
- string
$subCommandNameoptional '' Подкоманда, для которой нужно получить список опций. Может быть пустой, чтобы получить опции для команды. Если этот параметр используется, подкоманда должна быть валидной подкомандой переданной команды
Возвращает
arrayСписок опций для заданной команды или подкоманды
subCommands()source public
subCommands( string $commandName )
Возвращает список подкоманд для заданной команды
Параметры
- string
$commandName - Команда, для которой нужно получить подкоманды.
Возвращает
arrayИсключения
ReflectionExceptionМетоды, унаследованные от Cake\Console\Shell
__construct()source public
__construct( Cake\Console\ConsoleIo $io = null , Cake\ORM\Locator\LocatorInterface $locator = null )
Создаёт экземпляр этого объекта Shell.
Параметры
-
Cake\Console\ConsoleIo$iooptional null - Экземпляр io.
-
Cake\ORM\Locator\LocatorInterface$locatoroptional null - Экземпляр локатора таблиц.
Ссылка
https://book.cakephp.org/3.0/en/console-and-shells.html#Shell__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array__get()source public
__get( string $name )
Перегрузка get для ленивого создания задач
Параметры
- string
$name - Задача, которую нужно получить.
Возвращает
Cake\Console\ShellОбъект Task
_displayHelp()source protected
_displayHelp( string $command )
Отображает справку в правильном формате
Параметры
- string
$command - Команда, для которой нужно получить справку.
Возвращает
integer|booleanКоличество байтов, возвращённых из вывода в стандартный вывод.
_setOutputLevel()source protected
_setOutputLevel( )
Устанавливает уровень вывода на основе параметров.
Это перенастраивает уровень вывода для out() и настроенный логгирование stdout/stderr
_stop()source protected
_stop( integer|string $status = self::CODE_SUCCESS )
Останавливает выполнение текущего скрипта. Вызывает исключение StopException для попытки прерывания выполнения.
Параметры
- integer|string
$statusнеобязательно self::CODE_SUCCESS - см. https://secure.php.net/exit для значений
Исключения
Cake\Console\Exception\StopException_validateTasks()source protected
_validateTasks( )
Проверяет, что задачи в карте задач фактически доступны
Исключения
RuntimeExceptionabort()source public
abort( string $message , integer $exitCode = self::CODE_ERROR )
Отображает отформатированное сообщение об ошибке и завершает приложение с кодом состояния 1
Параметры
- string
$message - Сообщение об ошибке
- integer
$exitCodeнеобязательно self::CODE_ERROR - Код завершения для задачи оболочки.
Исключения
Cake\Console\Exception\StopExceptionСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#styling-outputclear()source public
clear( )
Очистить консоль
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#console-outputcreateFile()source public
createFile( string $path , string $contents )
Создает файл по заданному пути
Параметры
- string
$path - Куда поместить файл.
- string
$contents - Содержимое, которое нужно поместить в файл.
Возвращает
booleanУспех
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#creating-filesdispatchShell()source public
dispatchShell( )
Отправляет команду другой оболочке. Аналогично Object::requestAction(), но предназначено для запуска оболочек из других оболочек.
Использование:
С командной строкой:
return $this->dispatchShell('schema create DbAcl'); Избегайте использования этой формы, если у вас есть строчные аргументы со пробелами в них. Отправленная оболочка будет запущена неправильно. Используйте эту форму только для простого отправления команд.
С массивом команд:
return $this->dispatchShell('schema', 'create', 'i18n', '--dry'); С массивом, имеющим две пары ключ/значение: - command может принимать строку или массив. Представляет команду для отправки - extra может принимать массив дополнительных параметров для передачи диспетчеру. Эти параметры будут доступны в свойстве param вызываемой Shell
return $this->dispatchShell([ 'command' => 'schema create DbAcl', 'extra' => ['param' => 'value'] ]);
или
return $this->dispatchShell([ 'command' => ['schema', 'create', 'DbAcl'], 'extra' => ['param' => 'value'] ]);
Возвращает
integerКод завершения команды cli. 0 - успех.
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#invoking-other-shells-from-your-shellerr()source public
err( string|array|null $message = null , integer $newlines = 1 )
Выводит одно или несколько сообщений об ошибках в stderr. Если параметры не переданы, выводится только новая строка.
Параметры
- string|array|null
$messageнеобязательно null - Строка или массив строк для вывода
- integer
$newlinesнеобязательно 1 - Количество новых строк для добавления
Возвращает
integer|booleanКоличество байтов, возвращенных при записи в stderr.
error()source public deprecated
error( string $title , string|null $message = null , integer $exitCode = self::CODE_ERROR )
Отображает отформатированное сообщение об ошибке и завершает приложение с кодом состояния 1
Устарело
3.2.0 Используйте Shell::abort() вместо этого.Параметры
- string
$title - Заголовок ошибки
- string|null
$messageнеобязательно null - Необязательное сообщение об ошибке
- integer
$exitCodeнеобязательно self::CODE_ERROR - Код завершения для задачи оболочки.
Возвращает
integerКод ошибки
Исключения
Cake\Console\Exception\StopExceptionСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#styling-outputgetIo()source public
getIo( )
Получить объект io для этой оболочки.
Возвращает
Cake\Console\ConsoleIoТекущий объект ConsoleIo.
getOptionParser()source public
getOptionParser( )
Получает экземпляр анализатора опций и настраивает его.
Переопределяя этот метод, вы можете настроить ConsoleOptionParser перед его возвращением.
Возвращает
Cake\Console\ConsoleOptionParserСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#configuring-options-and-generating-helphasMethod()source public
hasMethod( string $name )
Проверить, имеет ли эта оболочка вызываемый метод с заданным именем.
Параметры
- string
$name - Имя метода для проверки.
Возвращает
booleanСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshasTask()source public
hasTask( string $task )
Проверить, есть ли у этой оболочки задача с заданным именем.
Параметры
- string
$task - Имя задачи для проверки.
Возвращает
booleanУспех
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshelper()source public
helper( string $name , array $settings = [] )
Отобразить помощника Console
Создать и отобразить вывод для объекта помощника. Если объект помощника еще не загружен, он будет загружен и сконструирован.
Параметры
- string
$name - Имя помощника для отображения
- array
$settingsнеобязательно [] - Данные конфигурации для помощника.
Возвращает
Cake\Console\HelperСозданный экземпляр помощника.
hr()source public
hr( integer $newlines = 0 , integer $width = 63 )
Выводит серию символов тире в стандартный вывод, служит визуальным разделителем.
Параметры
- integer
$newlinesнеобязательно 0 - Количество новых строк для добавления до и после
- integer
$widthнеобязательно 63 - Ширина строки, по умолчанию 63
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::hrin()source public
in( string $prompt , string|array|null $options = null , string|null $default = null )
Запрашивает у пользователя ввод и возвращает его.
Параметры
- string
$prompt - Текст запроса.
- string|array|null
$optionsнеобязательно null - Массив или строка опций.
- string|null
$defaultнеобязательно null - Значение ввода по умолчанию.
Возвращает
mixedЛибо значение по умолчанию, либо введённое пользователем.
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::ininfo()source public
info( string|array|null $message = null , integer $newlines = 1 , integer $level = Cake\Shell\Task\Shell::NORMAL )
Удобный метод для out(), который оборачивает сообщение тегом
Параметры
- string|array|null
$messageнеобязательно null - Строка или массив строк для вывода
- integer
$newlinesнеобязательно 1 - Количество добавляемых символов новой строки
- integer
$levelнеобязательно Cake\Shell\Task\Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
integer|booleanКоличество байтов, возвращённых при записи в стандартный вывод.
См. также
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outinitialize()source public
initialize( )
Инициализирует оболочку, выступает в качестве конструктора для подклассов, позволяет настроить задачи перед выполнением оболочки.
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Cake\Console\ConsoleOptionParser::initializeio()source public deprecated
io( Cake\Console\ConsoleIo $io = null )
Получить/установить объект io для этой оболочки.
Устарело
3.5.0 Используйте getIo()/setIo() вместо этого.Параметры
-
Cake\Console\ConsoleIo$ioнеобязательно null - Объект ConsoleIo для использования.
Возвращает
Cake\Console\ConsoleIoТекущий объект ConsoleIo.
loadTasks()source public
loadTasks( )
Загружает задачи, определённые в public $tasks
Возвращает
booleannl()source public
nl( integer $multiplier = 1 )
Возвращает последовательность символов новой строки или нескольких новых строк.
Параметры
- integer
$multiplierнеобязательно 1 - Количество повторений последовательности символов новой строки
Возвращает
stringСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::nlout()source public
out( string|array|null $message = null , integer $newlines = 1 , integer $level = Cake\Shell\Task\Shell::NORMAL )
Выводит одно или несколько сообщений в стандартный вывод. Если параметры не переданы, выводит только символ новой строки.
Уровни вывода
Существует 3 встроенных уровня вывода. Shell::QUIET, Shell::NORMAL, Shell::VERBOSE. Уровни вывода verbose и quiet соответствуют переключателям вывода verbose и quiet , присутствующим в большинстве оболочек. Использование Shell::QUIET для сообщения означает, что оно всегда будет отображаться. Использование Shell::VERBOSE означает, что оно будет отображаться только при включённом verbose выводе.
Параметры
- string|array|null
$messageнеобязательно null - Строка или массив строк для вывода
- integer
$newlinesнеобязательно 1 - Количество добавляемых символов новой строки
- integer
$levelнеобязательно Cake\Shell\Task\Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
integer|booleanКоличество байтов, возвращённых при записи в стандартный вывод.
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outparam()source public
param( string $name )
Безопасный доступ к значениям в $this->params.
Параметры
- string
$name - Имя параметра для получения.
Возвращает
string|boolean|nullЗначение. Возвращает null, если параметр не существует.
parseDispatchArguments()source public
parseDispatchArguments( array $args )
Парсит аргументы для метода dispatchShell().
Параметры
- array
$args Аргументы, полученные из метода dispatchShell() с помощью func_get_args()
Возвращает
arrayПервое значение должно быть массивом аргументов команды. Второе значение должно быть массивом дополнительных параметров для передачи диспетчеру
quiet()source public
quiet( string|array $message , integer $newlines = 1 )
Вывод на всех уровнях.
Параметры
- string|array
$message - Строка или массив строк для вывода
- integer
$newlinesнеобязательно 1 - Количество добавляемых символов новой строки
Возвращает
integer|booleanКоличество байтов, возвращённых при записи в стандартный вывод.
runCommand()source public
runCommand( array $argv , boolean $autoMethod = false , array $extra = [] )
Выполняет оболочку с предоставленными argv.
Делегирует вызовы задачам и разрешает методы внутри класса. Команды ищутся в следующем порядке:
- Метод в оболочке.
- Соответствующее имя задачи.
-
main()метод.
Если оболочка реализует main() метод, все отсутствующие вызовы методов будут отправлены в main() с исходным именем метода в argv.
Для вызова задач они должны быть представлены как подкоманды. Если вы определяете подкоманды, вы должны определить все подкоманды, которые вашей оболочке необходимы, независимо от того, являются ли они методами этого класса или методами задач.
Параметры
- array
$argv - Массив аргументов для выполнения оболочки. В этом массиве должно отсутствовать имя оболочки.
- boolean
$autoMethodнеобязательно false Установите в true, чтобы разрешить вызов любого публичного метода, даже если он не был определён как подкоманда. Это используется ShellDispatcher для упрощения создания простых оболочек.
- array
$extraнеобязательно [] Дополнительные параметры, которые можно вручную передать оболочке для обработки. Встроенный дополнительный параметр: -
requested: если используется, предотвращает отображение приветственного сообщения оболочки
Возвращает
integer|boolean|nullСсылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#the-cakephp-consolesetIo()source public
setIo( Cake\Console\ConsoleIo $io )
Установить объект io для этой оболочки.
Параметры
-
Cake\Console\ConsoleIo$io - Объект ConsoleIo для использования.
setRootName()source public
setRootName( string $name )
Установить имя корневой команды для вывода справки.
Параметры
- string
$name - Имя корневой команды.
Возвращает
$this
shortPath()source public
shortPath( string $file )
Делает абсолютный путь к файлу более читабельным
Параметры
- string
$file - Абсолютный путь к файлу
Возвращает
stringсокращённый путь
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::shortPathstartup()source public
startup( )
Запускает оболочку Shell и отображает приветственное сообщение. Позволяет проверять и настраивать параметры перед выполнением команды или основной программы.
Переопределите этот метод, если хотите удалить приветственную информацию или иным образом изменить поток до команды.
Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Cake\Console\ConsoleOptionParser::startupsuccess()source public
success( string|array|null $message = null , integer $newlines = 1 , integer $level = Cake\Shell\Task\Shell::NORMAL )
Удобный метод для out(), который оборачивает сообщение тегом .
Параметры
- строка|массив|null
$messageдополнительно null - Строка или массив строк для вывода
- целое число
$newlinesдополнительно 1 - Количество добавляемых символов новой строки
- целое число
$levelдополнительно Cake\Shell\Task\Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
целое число|логическое значениеКоличество байтов, возвращенных при записи в стандартный вывод.
См. также
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outverbose()source public
verbose( string|array $message , integer $newlines = 1 )
Вывод на уровне подробности.
Параметры
- строка|массив
$message - Строка или массив строк для вывода
- целое число
$newlinesдополнительно 1 - Количество добавляемых символов новой строки
Возвращает
целое число|логическое значениеКоличество байтов, возвращенных при записи в стандартный вывод.
warn()source public
warn( string|array|null $message = null , integer $newlines = 1 )
Удобный метод для err(), который оборачивает сообщение тегом .
Параметры
- строка|массив|null
$messageдополнительно null - Строка или массив строк для вывода
- целое число
$newlinesдополнительно 1 - Количество добавляемых символов новой строки
Возвращает
целое число|логическое значениеКоличество байтов, возвращенных при записи в стандартный поток ошибок.
См. также
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::errwrapMessageWithType()source protected deprecated
wrapMessageWithType( string $messageType , string|array $message )
Оборачивает сообщение заданным типом сообщения, например,
Устарело
3.6.0 Будет удалено в 4.0.0, так как больше не используется.Параметры
- строка
$messageType - Тип сообщения, например, "предупреждение".
- строка|массив
$message - Сообщение для обёртки.
Возвращает
массив|строкаСообщение, обернутое заданным типом сообщения.
wrapText()source public
wrapText( string $text , integer|array $options = [] )
Обёртка блока текста. Позволяет задать ширину и отступы для блока текста.
Параметры
-
widthШирина для обёртки. По умолчанию 72 -
wordWrapОбёртка только по словам (пробелам). По умолчанию true. -
indentОтступ текста заданной строкой. По умолчанию null.
Параметры
- строка
$text - Текст для форматирования.
- целое число|массив
$optionsдополнительно [] - Массив параметров для использования, или целое число для обёртки текста.
Возвращает
строкаОбёрнутый/отступленный текст
См. также
\Cake\Utility\Text::wrap()Ссылка
https://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::wrapTextМетоды, используемые из Cake\ORM\Locator\LocatorAwareTrait
getTableLocator()source public
getTableLocator( )
Получение локетора таблицы.
Возвращает
Cake\ORM\Locator\LocatorInterfacesetTableLocator()source public
setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )
Устанавливает локетор таблицы.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator - Объект LocatorInterface.
Возвращает
$this
tableLocator()source public deprecated
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )
Устанавливает локетор таблицы. Если параметры не переданы, возвращает текущий используемый локетор.
Устарело
3.5.0 Используйте getTableLocator()/setTableLocator() вместо этого.Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorдополнительно null - Объект LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterfaceМетоды, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level = LogLevel::ERROR , string|array $context = [] )
Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.
Параметры
- смешанные
$msg - Сообщение журнала.
- целое число|строка
$levelдополнительно LogLevel::ERROR - Уровень ошибки.
- строка|массив
$contextдополнительно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
логическое значениеУспех записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergeProperty()source protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединение одного свойства со значениями, объявленными во всех родительских классах.
Параметры
- строка
$property - Имя объединяемого свойства.
- массив
$parentClasses - Массив классов, которые нужно объединить.
- массив
$options - Параметры для объединения свойства, см. _mergeVars()
_mergePropertyData()source protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединение каждого из ключей в свойстве.
Параметры
- массив
$current - Текущее объединённое значение.
- массив
$parent - Значение родительского класса.
- логическое значение
$isAssoc - Следует ли выполнять объединение в ассоциативном режиме.
Возвращает
смешанноеОбновлённое значение.
_mergeVars()source protected
_mergeVars( array $properties , array $options = [] )
Объединяет список $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны обрабатываться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- массив
$properties - Массив свойств и стратегии объединения для них.
- массив
$optionsдополнительно [] - Параметры для объединения свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Устанавливает свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны
Параметры
- строка
$name - Имя класса.
getModelType()source public
getModelType( )
Получение типа модели, используемой этим классом.
Возвращает
строкаloadModel()source public
loadModel( string|null $modelClass = null , string|null $modelType = null )
Загружает и создает объекты репозитория, необходимые для этого объекта.
Обычно используется для загрузки объектов таблиц ORM по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- string|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию равно $this->modelClass
- string|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию равно значению modelType().
Возвращаемое значение
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Исключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если тип модели не был определен
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределяет существующую вызываемую функцию для генерации репозиториев заданного типа.
Параметры
- string
$type - Имя типа репозитория, для которого предназначена фабричная функция.
- callable
$factory - Фабричная функция, используемая для создания экземпляров.
modelType()source public deprecated
modelType( string|null $modelType = null )
Устанавливает или получает тип модели, который будет использоваться этим классом
Устаревшее
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- string|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращаемое значение
string|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Устанавливает тип модели, который будет использоваться этим классом
Параметры
- string
$modelType - Тип модели
Возвращаемое значение
$this
Магические методы, унаследованные от Cake\Console\Shell
main() |
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.6/class-Cake.Shell.Task.CommandTask.html