Класс Shell
Базовый класс для утилит командной строки для автоматизации задач программиста.
Является эквивалентом Cake\Controller\Controller в командной строке.
- Cake\Console\Shell использует Cake\ORM\Locator\LocatorAwareTrait, Cake\Log\LogTrait, Cake\Utility\MergeVariablesTrait, Cake\Datasource\ModelAwareTrait
Прямые подклассы
- Cake\Shell\CommandListShell
- Cake\Shell\CompletionShell
- Cake\Shell\Task\LoadTask
- Cake\Shell\Task\UnloadTask
- Cake\Shell\I18nShell
- Cake\Shell\OrmCacheShell
- Cake\Shell\PluginShell
- Cake\Shell\RoutesShell
- Cake\Shell\ServerShell
- Cake\Shell\Task\AssetsTask
- Cake\Shell\Task\CommandTask
- Cake\Shell\Task\ExtractTask
Краткое описание констант
-
integer1 -
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
Инициализирует Shell, выступает как конструктор для подклассов, позволяет настроить задачи до выполнения оболочки.
- io() publicПолучение/Установка объекта io для этой оболочки.
- loadTasks() publicЗагрузка задач, определённых в public $tasks
- nl() publicВозвращает одну или несколько последовательностей символов новой строки.
- out() public
Выводит одно или несколько сообщений в стандартный вывод. Если нет параметров, выводится только символ новой строки.
- param() publicБезопасный доступ к значениям в $this->params.
- parseDispatchArguments() publicПарсинг аргументов для метода dispatchShell().
- quiet() publicВывод на всех уровнях.
- runCommand() publicЗапуск оболочки с предоставленным argv.
- shortPath() publicДелает абсолютный путь к файлу более читаемым
- startup() public
Запускает Shell и отображает приветственное сообщение. Позволяет проверять и настраивать до команды или основного выполнения.
- success() publicМетод-обёртка для out(), который включает сообщение в тег
- verbose() publicВывод на уровне подробности.
- 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( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array__get()source public
__get( string $name )
Перегрузка get для ленивой сборки задач
Параметры
- string
$name - Задача для получения.
Возвращает
Cake\Console\ShellОбъект задачи
_displayHelp()source protected
_displayHelp( string $command )
Отображает справку в правильном формате
Параметры
- string
$command - Команда для получения справки.
Возвращает
целое число/логическое значение_setOutputLevel()source protected
_setOutputLevel( )
Устанавливает уровень вывода на основе параметров.
Это перенастраивает уровень вывода для out() и настроенный логгирование stdout/stderr
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Выбрасывает StopException для попытки остановки выполнения.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
Вызывает
Cake\Console\Exception\StopExceptionabort()source public
abort( string $message , integer $exitCode self::CODE_ERROR )
Отображает отформатированное сообщение об ошибке и завершает приложение с кодом состояния 1
Параметры
- string
$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 )
Создаёт файл по заданному пути
Параметры
- строка
$path - Куда поместить файл.
- строка
$contents - Содержание для файла.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#creating-filesdispatchShell()source public
dispatchShell( )
Отправляет команду другому Shell. Похоже на Object::requestAction(), но предназначено для запуска shell из других shell.
Использование:
С строковой командой:
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'] ]);
Возвращает
mixedРезультат работы другого shell.
Ссылка
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. Если параметры не переданы, выводит только новую строку.
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество добавляемых новых строк
error()source public
error( string $title , string|null $message null , integer $exitCode self::CODE_ERROR )
Отображает отформатированное сообщение об ошибке и завершает работу приложения с кодом состояния 1
Устарело
С версии 3.2.0. Используйте Shell::abort() вместо этого.Параметры
- строка
$title - Заголовок ошибки
- строка|null
$messageнеобязательно null - Необязательное сообщение об ошибке
- целое число
$exitCodeнеобязательно self::CODE_ERROR - Код завершения задачи shell.
Возвращает
целое числоКод ошибки
Выбрасывает
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 )
Проверяет, имеет ли этот shell вызываемый метод с данным именем.
Параметры
- строка
$name - Имя метода для проверки.
Возвращает
booleanСсылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshasTask()source public
hasTask( string $task )
Проверяет, есть ли у этого shell задача с заданным именем.
Параметры
- строка
$task - Имя задачи для проверки.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshelper()source public
helper( string $name , array $settings [] )
Отображает Console Helper
Создаёт и отображает вывод для объекта helper. Если объект helper ещё не загружен, он будет загружен и создан.
Параметры
- строка
$name - Имя helper для отображения
- массив
$settingsнеобязательно [] - Данные конфигурации для helper.
Возвращает
Cake\Console\HelperСозданный экземпляр helper.
hr()source public
hr( integer $newlines 0 , integer $width 63 )
Выводит ряд символов минус в стандартный вывод, служит визуальным разделителем.
Параметры
- целое число
$newlinesнеобязательно 0 - Количество новых строк для добавления до и после
- целое число
$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 )
Запрашивает у пользователя ввод и возвращает его.
Параметры
- строка
$prompt - Текст запроса.
- строка|массив|null
$optionsнеобязательно null - Массив или строка опций.
- строка|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(), который оборачивает сообщение между тегами
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество добавляемых новых строк
- целое число
$levelнеобязательно Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
целое число|booleanВозвращает количество байтов, возвращённых из записи в stdout.
См.
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outinitialize()source public
initialize( )
Инициализирует Shell, действует как конструктор для подклассов, позволяет настроить задачи перед выполнением 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 для этого shell.
Параметры
-
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необязательно [] Дополнительные параметры, которые можно вручную передать в оболочку для обработки. Встроенный дополнительный параметр — : -
requested: если используется, предотвратит отображение приветственного сообщения оболочки
Возвращает
смешанныйСсылка
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().
Параметры
- mixed
$msg - Сообщение для записи в журнал.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergeProperty()source protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединяет одно свойство со значениями, объявленными во всех родительских классах.
Параметры
- string
$property - Имя объединяемого свойства.
- array
$parentClasses - Массив классов, которые нужно объединить.
- array
$options - Параметры для объединения свойства, см. _mergeVars()
_mergePropertyData()source protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединяет каждый из ключей в свойстве вместе.
Параметры
- array
$current - Текущее объединённое значение.
- array
$parent - Значение родительского класса.
- boolean
$isAssoc - Флаг, указывающий, должно ли объединение выполняться в ассоциативном режиме.
Возвращает
mixedОбновлённое значение.
_mergeVars()source protected
_mergeVars( array $properties , array $options [] )
Объединяет список $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны обрабатываться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- array
$properties - Массив свойств и стратегии объединения для них.
- array
$optionsнеобязательно [] - Параметры для объединения свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Устанавливает свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны.
Параметры
- string
$name - Имя класса.
loadModel()source public
loadModel( string|null $modelClass null , string|null $modelType null )
Загружает и создаёт объекты хранилища, необходимые этому объекту
Обычно используется для загрузки объектов ORM Table по мере необходимости. Также может использоваться для загрузки других типов объектов хранилища, используемых вашим приложением.
Если поставщик хранилища не возвращает объект, будет выброшено 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
modelType( string|null $modelType null )
Устанавливает или получает тип модели, используемый этим классом
Параметры
- string|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|Cake\Datasource\ModelAwareTrait$this
Подробное описание свойств
$OptionParsersource
public Cake\Console\ConsoleOptionParser
Экземпляр ConsoleOptionParser, настроенный для этого класса.
$Taskssource
public Cake\Console\TaskRegistry
Коллекция задач для команды, используется для создания задач.
$interactivesource
public boolean
Если true, скрипт запросит разрешение на выполнение действий.
true
$pluginsource
public string
Имя плагина, к которому принадлежит командная оболочка. Автоматически устанавливается ShellDispatcher при создании командной оболочки.
null
$taskssource
public array
Содержит задачи для загрузки и создания экземпляров
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::$tasks[]
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Console.Shell.html