Класс Shell
Базовый класс для утилит командной строки для автоматизации задач программиста.
Эквивалент Cake\Controller\Controller в командной строке.
- Cake\Console\Shell использует Cake\ORM\Locator\LocatorAwareTrait , Cake\Log\LogTrait , Cake\Utility\MergeVariablesTrait , Cake\Datasource\ModelAwareTrait
Прямые подклассы
- Cake\Shell\CacheShell
- Cake\Shell\CommandListShell
- Cake\Shell\Task\ExtractTask
- Cake\Shell\Task\LoadTask
- Cake\Shell\Task\UnloadTask
- Cake\Shell\CompletionShell
- Cake\Shell\I18nShell
- Cake\Shell\OrmCacheShell
- Cake\Shell\PluginShell
- Cake\Shell\RoutesShell
- Cake\Shell\ServerShell
- Cake\Shell\Task\AssetsTask
- Cake\Shell\Task\CommandTask
Резюме констант
-
integer1 -
integer0 -
integerConsoleIo::NORMAL -
integerConsoleIo::QUIET -
integerConsoleIo::VERBOSE
Резюме свойств
- Экземпляр ConsoleOptionParser, настроенный для этого класса.
$OptionParserpublic - Коллекция задач для команды, используемая для создания задач.
$Taskspublic - Экземпляр ConsoleIo.
$_ioprotected -
$_taskMapprotectedНормализованное отображение задач.array -
$argspublicСодержит аргументы, прочитанные из командной строки.array -
$commandpublicКоманда (метод/задача), которая выполняется.string -
$interactivepublicЕсли true, скрипт запросит разрешение на выполнение действий.boolean -
$namepublicИмя оболочки в camelized формате.string -
$paramspublicСодержит переключатели команд, прочитанные из командной строки.array -
$pluginpublicstringИмя плагина, к которому принадлежит оболочка. Автоматически устанавливается ShellDispatcher при создании оболочки.
-
$taskNamespublicСодержит загруженные задачи.array -
$taskspublicСодержит задачи для загрузки и инициализации.array
Унаследованные свойства
Резюме методов
- __construct() publicСоздаёт экземпляр этого Shell.
- __debugInfo() public
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
- __get() publicПерегрузка get для ленивой сборки задач
- _displayHelp() protectedОтображает справку в правильном формате
- _setOutputLevel() protectedУстанавливает уровень вывода на основе параметров.
- _stop() protected
Останавливает выполнение текущего скрипта. Вызывает StopException для попытки остановки выполнения.
- _welcome() protectedОтображает заголовок оболочки
- abort() public
Отображает отформатированное сообщение об ошибке и завершает приложение со статусом 1
- clear() publicОчистить консоль
- createFile() publicСоздаёт файл по заданному пути
- dispatchShell() public
Перенаправление команды в другую оболочку. Аналогично Object::requestAction(), но предназначено для запуска оболочек из других оболочек.
- err() public
Выводит одно или несколько сообщений об ошибках в stderr. Если параметры не переданы, выводит только новую строку.
- error() public
Отображает отформатированное сообщение об ошибке и завершает приложение со статусом 1
- getOptionParser() publicПолучает экземпляр парсера опций и настраивает его.
- hasMethod() publicПроверка наличия вызываемого метода с заданным именем в этой оболочке.
- hasTask() publicПроверка наличия задачи с заданным именем в этой оболочке.
- helper() publicОтобразить помощник консоли
- hr() publicВыводит серию символов минус в стандартный вывод, служит визуальным разделителем.
- in() publicЗапрашивает у пользователя ввод и возвращает его.
- info() publicУдобный метод для out(), который оборачивает сообщение тегами
- initialize() public
Инициализирует оболочку, выступает в качестве конструктора для подклассов, позволяет настроить задачи перед запуском оболочки
- io() publicПолучение/установка объекта ввода-вывода для этой оболочки.
- loadTasks() publicЗагрузка задач, определённых в public $tasks
- nl() publicВозвращает одну или несколько последовательностей символов новой строки.
- out() public
Выводит одно или несколько сообщений в стандартный вывод. Если параметры не переданы, выводит только новую строку.
- param() publicБезопасный доступ к значениям в $this->params.
- parseDispatchArguments() publicПарсит аргументы для метода dispatchShell().
- quiet() publicВывод на всех уровнях.
- runCommand() publicЗапускает оболочку с предоставленным argv.
- shortPath() publicДелает абсолютный путь к файлу более читаемым
- startup() public
Запускает оболочку и отображает приветственное сообщение. Позволяет проверять и настраивать перед выполнением команды или основной частью
- success() publicУдобный метод для out(), который оборачивает сообщение тегами
- verbose() publicВывод на уровне verbose.
- warn() publicУдобный метод для err(), который оборачивает сообщение тегами
- wrapText() public
Оборачивает блок текста. Позволяет задавать ширину и отступы в блоке текста.
Подробное описание методов
__construct()source public
__construct( Cake\Console\ConsoleIo $io null )
Создаёт экземпляр этого Shell.
Параметры
-
Cake\Console\ConsoleIo$ioнеобязательно null - Экземпляр io.
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
массив__get()source public
__get( string $name )
Перегрузка get для ленивой сборки задач
Параметры
- строка
$name - Задача для получения.
Возвращает
Cake\Console\ShellОбъект задачи
_displayHelp()source protected
_displayHelp( string $command )
Отображает справку в правильном формате
Параметры
- строка
$command - Команда, для которой требуется справка.
Возвращает
целое число/логическое значениеКоличество байтов, возвращённых при записи в стандартный вывод.
_setOutputLevel()source protected
_setOutputLevel( )
Устанавливает уровень вывода на основе параметров.
Это перенастраивает как уровень вывода для out(), так и настроенное протоколирование stdout/stderr
_stop()source protected
_stop( integer|string $status self::CODE_SUCCESS )
Останавливает выполнение текущего скрипта. Вызывает StopException для попытки остановки выполнения.
Параметры
- целое число/строка
$statusнеобязательно self::CODE_SUCCESS - см. http://php.net/exit для значений
Выбрасывает
Cake\Console\Exception\StopExceptionabort()source public
abort( string $message , integer $exitCode self::CODE_ERROR )
Отображает отформатированное сообщение об ошибке и завершает приложение со статусом 1
Параметры
- строка
$message - Сообщение об ошибке
- целое число
$exitCodeнеобязательно self::CODE_ERROR - Код завершения задачи оболочки.
Выбрасывает
Cake\Console\Exception\StopExceptionСсылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#styling-outputclear()source public
clear( )
Очистить консоль
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#console-outputcreateFile()source public
createFile( string $path , string $contents )
Создаёт файл по заданному пути
Параметры
- string
$path - Местоположение файла.
- string
$contents - Содержимое файла.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#creating-filesdispatchShell()source public
dispatchShell( )
Перенаправляет команду другому Shell. Похоже на 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 — успех.
Ссылка
http://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
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Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#styling-outputgetOptionParser()source public
getOptionParser( )
Получает экземпляр парсера опций и настраивает его.
Переопределяя этот метод, вы можете настроить ConsoleOptionParser перед его возвращением.
Возвращает
Cake\Console\ConsoleOptionParserСсылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#configuring-options-and-generating-helphasMethod()source public
hasMethod( string $name )
Проверяет, содержит ли эта оболочка вызываемый метод с заданным именем.
Параметры
- string
$name - Имя проверяемого метода.
Возвращает
booleanСсылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshasTask()source public
hasTask( string $task )
Проверяет, содержит ли эта оболочка задачу с заданным именем.
Параметры
- string
$task - Имя проверяемой задачи.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshelper()source public
helper( string $name , array $settings [] )
Отображение Помощника Консоли
Создаёт и отображает вывод для объекта помощника. Если объект помощника ещё не загружен, он будет загружен и создан.
Параметры
- string
$name - Имя помощника для отображения
- array
$settingsнеобязательно [] - Данные конфигурации для помощника.
Возвращает
Cake\Console\HelperСозданный экземпляр помощника.
hr()source public
hr( integer $newlines 0 , integer $width 63 )
Выводит последовательность символов минус в стандартный вывод, используется в качестве визуального разделителя.
Параметры
- integer
$newlinesнеобязательно 0 - Количество новых строк для предварительного и последующего добавления
- integer
$widthнеобязательно 63 - Ширина линии, по умолчанию 63
Ссылка
http://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Значение по умолчанию или введённое пользователем.
Ссылка
http://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 Shell::NORMAL )
Удобный метод для out(), который оборачивает сообщение тегом
Параметры
- string|array|null
$messageнеобязательно null - Строка или массив строк для вывода
- integer
$newlinesнеобязательно 1 - Количество добавляемых новых строк
- integer
$levelнеобязательно Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
integer|booleanКоличество байтов, возвращённых при записи в stdout.
См.
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outinitialize()source public
initialize( )
Инициализирует Shell, выполняет роль конструктора для подклассов, позволяет настроить задачи до выполнения оболочки
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Cake\Console\ConsoleOptionParser::initializeio()source public
io( Cake\Console\ConsoleIo $io null )
Получить/Установить объект io для этой оболочки.
Параметры
-
Cake\Console\ConsoleIo$ioнеобязательно null - Объект ConsoleIo для использования.
Возвращает
Cake\Console\ConsoleIoТекущий объект ConsoleIo.
loadTasks()source public
loadTasks( )
Загружает задачи, определённые в public $tasks
Возвращает
booleannl()source public
nl( integer $multiplier 1 )
Возвращает одну или несколько последовательностей символов новой строки.
Параметры
- целое число
$multiplierнеобязательно 1 - Количество раз, которое последовательность символов новой строки должна быть повторена
Возвращает
строкаСсылка
http://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 Shell::NORMAL )
Выводит одно или несколько сообщений в стандартный вывод. Если нет параметров, выводится только символ новой строки.
Уровни вывода
Существует 3 встроенных уровня вывода. Shell::QUIET, Shell::NORMAL, Shell::VERBOSE. Уровни вывода verbose и quiet соответствуют параметрам verbose и quiet в большинстве оболочек. Используя Shell::QUIET для сообщения, оно всегда будет отображаться. В то время как Shell::VERBOSE означает, что оно будет отображаться только при включенном подробном выводе.
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество символов новой строки для добавления
- целое число
$levelнеобязательно Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
целое число|булевоКоличество байт, возвращаемых при записи в стандартный вывод.
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outparam()source public
param( string $name )
Безопасно получить значения в $this->params.
Параметры
- строка
$name - Имя параметра для получения.
Возвращает
строка|булево|nullЗначение. Вернет null, если не существует.
parseDispatchArguments()source public
parseDispatchArguments( array $args )
Парсит аргументы для метода dispatchShell().
Параметры
- массив
$args Аргументы получены из метода dispatchShell() с помощью func_get_args()
Возвращает
массивПервое значение должно быть массивом аргументов команды. Второе значение должно быть массивом дополнительных параметров, которые нужно передать диспетчеру
quiet()source public
quiet( string|array $message , integer $newlines 1 )
Вывод на всех уровнях.
Параметры
- строка|массив
$message - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество символов новой строки для добавления
Возвращает
целое число|булевоКоличество байт, возвращаемых при записи в стандартный вывод.
runCommand()source public
runCommand( array $argv , boolean $autoMethod false , array $extra [] )
Выполняет Shell с предоставленным argv.
Делегирует вызовы задачам и разрешает методы внутри класса. Команды ищутся в следующем порядке:
- Метод в оболочке.
- Соответствующее имя задачи.
-
main()метод.
Если оболочка реализует метод main() , все отсутствующие вызовы методов будут отправлены в main() с исходным именем метода в argv.
Для вызова задач они должны быть представлены как подкоманды. Если вы определяете подкоманды, вы должны определить все подкоманды, которые вашей оболочке требуются, независимо от того, являются ли они методами этого класса или методами задач.
Параметры
- массив
$argv - Массив аргументов для запуска оболочки. В этом массиве должно отсутствовать имя оболочки.
- булево
$autoMethodнеобязательно false Установите в значение true, чтобы разрешить вызов любого публичного метода, даже если он не был определен как подкоманда. Это используется ShellDispatcher, чтобы упростить создание простых оболочек.
- массив
$extraнеобязательно [] Дополнительные параметры, которые вы можете вручную передать в Shell для обработки. Встроенный дополнительный параметр: -
requested: если используется, предотвратит отображение приветственного сообщения Shell
Возвращает
целое число|булево|nullСсылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#the-cakephp-consoleshortPath()source public
shortPath( string $file )
Делает абсолютный путь к файлу более читаемым
Параметры
- строка
$file - Абсолютный путь к файлу
Возвращает
строкаКороткое имя пути
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::shortPathstartup()source public
startup( )
Запускает Shell и отображает приветственное сообщение. Позволяет проверять и настраивать перед выполнением команды или основного выполнения
Переопределите этот метод, если хотите удалить приветственную информацию или иным образом изменить поток до команды.
Ссылка
http://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 Shell::NORMAL )
Удобный метод для out(), который оборачивает сообщение тегом
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество символов новой строки для добавления
- целое число
$levelнеобязательно Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
целое число|булевоКоличество байт, возвращаемых при записи в стандартный вывод.
См. также
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outverbose()source public
verbose( string|array $message , integer $newlines 1 )
Вывод на уровне verbose.
Параметры
- строка|массив
$message - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество символов новой строки для добавления
Возвращает
целое число|булевоКоличество байт, возвращаемых при записи в стандартный вывод.
warn()source public
warn( string|array|null $message null , integer $newlines 1 )
Удобный метод для err(), который оборачивает сообщение тегом
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество символов новой строки для добавления
Возвращает
целое число|булевоКоличество байт, возвращаемых при записи в стандартный вывод.
См. также
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::errwrapText()source public
wrapText( string $text , integer|array $options [] )
Обернуть блок текста. Позволяет установить ширину и отступы блока текста.
Параметры
-
widthШирина обрезки. По умолчанию 72 -
wordWrapОбрезка только по разрывам слов (пробелы). По умолчанию true. -
indentОтступы текста с указанной строкой. По умолчанию null.
Параметры
- строка
$text - Текст для форматирования.
- целое число|массив
$optionsнеобязательно [] - Массив опций для использования или целое число для обрезки текста.
Возвращает
строкаОформленный/отступленный текст
См. также
\Cake\Utility\Text::wrap()Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::wrapTextМетоды, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocator()source public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблиц. Если параметры не переданы, возвращает текущий используемый локатор.
Параметры
-
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необязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Методы, используемые из 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 - Имя класса.
loadModel()source public
loadModel( string|null $modelClass null , string|null $modelType null )
Загрузка и создание объектов репозитория, необходимых для этого объекта.
Обычно используется для загрузки объектов таблицы ORM по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых в вашем приложении.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка или null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка или null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
Cake\Datasource\RepositoryInterfaceЭкземпляр созданной модели.
Исключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если не определен тип модели
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределите существующую вызываемую функцию для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызываемая функция
$factory - Функция фабрики, используемая для создания экземпляров.
modelType()source public
modelType( string|null $modelType null )
Установка или получение типа модели, используемого этим классом.
Параметры
- строка или null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
строка|Cake\Datasource\ModelAwareTrait$this
Подробное описание свойств
$OptionParsersource
public Cake\Console\ConsoleOptionParser
Экземпляр ConsoleOptionParser, настроенный для этого класса.
$Taskssource
public Cake\Console\TaskRegistry
Коллекция задач для команды, используемая для создания задач.
$pluginsource
public строка
Имя плагина, к которому принадлежит оболочка. Автоматически устанавливается ShellDispatcher при создании оболочки.
null
$taskssource
public array
Содержит задачи для загрузки и создания экземпляров
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::$tasks[]
© 2005–2017 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.3/class-Cake.Console.Shell.html