Класс 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Подробное описание методов
__constructsource 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__debugInfosource public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
arrayмассив
__getsource public
__get( string $name )
Перегрузка get для ленивого создания задач
Параметры
- строка
$name - Задача для получения.
Возвращает
Cake\Console\ShellОбъект Task
_displayHelpsource protected
_displayHelp( string $command )
Выводит справку в правильном формате
Параметры
- строка
$command - Команда для получения справки.
Возвращает
integer|booleanint|bool
_setOutputLevelsource protected
_setOutputLevel( )
Устанавливает уровень вывода на основе параметров.
Это переконфигурирует уровень вывода для out() и настроенное протоколирование stdout/stderr.
_stopsource protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число|строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
clearsource public
clear( )
Очистить консоль
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#console-outputcreateFilesource public
createFile( string $path , string $contents )
Создаёт файл по заданному пути
Параметры
- строка
$path - Куда поместить файл.
- строка
$contents - Содержание для файла.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#creating-filesdispatchShellsource public
dispatchShell( )
Перенаправляет команду в другую Shell. Похоже на Object::requestAction(), но предназначено для запуска shell из других shell.
Использование:
С строковой командой:
return $this->dispatchShell('schema create DbAcl');
Избегайте использования этого формата, если у вас есть строковые аргументы со пробелами в них. Вызванная shell будет неправильно запущена. Используйте только этот формат для простого перенаправления команд.
С массивом команд:
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-shellerrsource public
err( string|array|null $message null , integer $newlines 1 )
Выводит одно или несколько сообщений об ошибках в stderr. Если параметры не переданы, выводится только перевод строки.
Параметры
- строка|массив|null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество переводимых строк для добавления
errorsource public
error( string $title , string|null $message null )
Отображает отформатированное сообщение об ошибке и завершает приложение с кодом состояния 1
Параметры
- строка
$title - Название ошибки
- строка|null
$messageнеобязательно null - Необязательное сообщение об ошибке
Возвращает
integerКод ошибки
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#styling-outputgetOptionParsersource public
getOptionParser( )
Получает экземпляр обработчика опций и настраивает его.
Переопределив этот метод, вы можете настроить ConsoleOptionParser перед его возвращением.
Возвращает
Cake\Console\ConsoleOptionParser\Cake\Console\ConsoleOptionParser
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#configuring-options-and-generating-helphasMethodsource public
hasMethod( string $name )
Проверяет, имеет ли этот shell вызываемый метод с заданным именем.
Параметры
- строка
$name - Имя метода для проверки.
Возвращает
booleanbool
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshasTasksource public
hasTask( string $task )
Проверить, есть ли у этого шелла задача с указанным именем.
Параметры
- строка
$task - Имя задачи для проверки.
Возвращает
booleanУспешно
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#shell-taskshelpersource public
helper( string $name , array $settings [] )
Отобразить помощник консоли
Создать и отобразить вывод для объекта помощника. Если объект помощника еще не загружен, он будет загружен и сконструирован.
Параметры
- строка
$name - Имя помощника для отображения
- массив
$settingsнеобязательно [] - Данные конфигурации для помощника.
Возвращает
Cake\Console\HelperСозданный экземпляр помощника.
hrsource 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::hrinsource 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::ininitializesource public
initialize( )
Инициализирует Shell, действует как конструктор для подклассов, позволяет настроить задачи до выполнения шелла.
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Cake\Console\ConsoleOptionParser::initializeiosource public
io( Cake\Console\ConsoleIo $io null )
Получить/установить объект io для этого шелла.
Параметры
-
Cake\Console\ConsoleIo$ioнеобязательно null - Объект ConsoleIo для использования.
Возвращает
Cake\Console\ConsoleIoТекущий объект ConsoleIo.
loadTaskssource public
loadTasks( )
Загружает задачи, определенные в public $tasks
Возвращает
booleanbool
nlsource public
nl( integer $multiplier 1 )
Возвращает одну или несколько последовательностей переводов строки.
Параметры
- целое число
$multiplierнеобязательно 1 - Число повторений последовательности перевода строки
Возвращает
stringстрока
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::nloutsource public
out( string|array|null $message null , integer $newlines 1 , integer $level Cake\Console\Shell::NORMAL )
Выводит одно или несколько сообщений в stdout. Если параметры не переданы, выводится только перевод строки.
Уровни вывода
Существует 3 встроенных уровня вывода. Shell::QUIET, Shell::NORMAL, Shell::VERBOSE. Уровни вывода verbose и quiet соответствуют переключателям вывода verbose и quiet в большинстве шеллов. Использование Shell::QUIET для сообщения означает, что оно всегда будет отображаться. В то время как использование Shell::VERBOSE означает, что оно будет отображаться только при включенном режиме verbose.
Параметры
- строка/массив/null
$messageнеобязательно null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество переводов строк для добавления
- целое число
$levelнеобязательноCake\Console\Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
integer|booleanВозвращает количество байт, возвращенных из записи в stdout.
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::outparamsource public
param( string $name )
Безопасно получить значения в $this->params.
Параметры
- строка
$name - Имя параметра для получения.
Возвращает
string|boolean|nullЗначение. Возвратит null, если он не существует.
parseDispatchArgumentssource public
parseDispatchArguments( array $args )
Разбирает аргументы для метода dispatchShell().
Параметры
- массив
$args - Аргументы, полученные из метода dispatchShell() с помощью func_get_args()
Возвращает
arrayПервое значение должно быть массивом аргументов команды. Второе значение должно быть массивом дополнительных параметров для передачи диспетчеру
quietsource public
quiet( string|array $message , integer $newlines 1 )
Вывод на всех уровнях.
Параметры
- строка/массив
$message - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество переводов строк для добавления
Возвращает
integer|booleanВозвращает количество байт, возвращенных из записи в stdout.
runCommandsource public
runCommand( array $argv , boolean $autoMethod false , array $extra [] )
Выполняет Shell с предоставленным argv.
Делегирует вызовы задачам и разрешает методы внутри класса. Команды ищутся в следующем порядке:
- Метод в шелле.
- Совпадающее имя задачи.
-
main()метод.
Если шелл реализует метод main(), все отсутствующие вызовы методов будут отправлены в main() с оригинальным именем метода в argv.
Для вызова задач они должны быть представлены как подкоманды. Если вы определяете подкоманды, вы должны определить все необходимые подкоманды вашего шелла, независимо от того, являются ли они методами этого класса или методами задач.
Параметры
- массив
$argv - Массив аргументов для выполнения шелла. В этом массиве должно отсутствовать имя шелла.
- логическое значение
$autoMethodнеобязательно false - Установите в true, чтобы разрешить вызов любого публичного метода, даже если он не был определен как подкоманда. Это используется ShellDispatcher, чтобы упростить создание простых шеллов.
- массив
$extraнеобязательно [] - Дополнительные параметры, которые вы можете вручную передать шеллу для его обработки. Встроенный дополнительный параметр: -
requested: если используется, предотвратит отображение приветственного сообщения шелла
Возвращает
mixedсмешанный
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#the-cakephp-consoleshortPathsource public
shortPath( string $file )
Делает абсолютный путь к файлу более читаемым
Параметры
- строка
$file - Абсолютный путь к файлу
Возвращает
stringкороткий путь
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::shortPathstartupsource public
startup( )
Инициализирует Shell и отображает приветственное сообщение. Позволяет проверить и настроить параметры перед выполнением команды или основной логики.
Переопределите этот метод, если хотите убрать приветственное сообщение или изменить порядок действий перед выполнением команды.
Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Cake\Console\ConsoleOptionParser::startupverbosesource public
verbose( string|array $message , integer $newlines 1 )
Вывод на уровне подробности.
Параметры
- строка|массив
$message - Строка или массив строк для вывода
- целое число
$newlinesнеобязательно 1 - Количество новых строк для добавления
Возвращает
integer|booleanВозвращает количество байтов, возвращённых при записи в стандартный вывод.
wrapTextsource public
wrapText( string $text , integer|array $options [] )
Обёртка блока текста. Позволяет установить ширину и отступы для блока текста.
Параметры
-
widthШирина обрезки. По умолчанию 72 -
wordWrapОбрезать только по словам (пробелы). По умолчанию true. -
indentОтступ текста предоставленной строкой. По умолчанию null.
Параметры
- строка
$text - Текст для форматирования.
- целое число|массив
$optionsнеобязательно [] - Массив параметров или целое число для обрезки текста.
Возвращает
stringОбрезанный/отформатированный текст
См. также
Cake\Utility\Text::wrap()Ссылка
http://book.cakephp.org/3.0/ru/console-and-shells.html#Shell::wrapTextСпособы, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocatorsource public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблиц. Если параметры не переданы, возвращает текущий локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Объект LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterface\Cake\ORM\Locator\LocatorInterface
Способы, используемые из Cake\Log\LogTrait
logsource public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Метод для удобства записи сообщения в журнал. Для более подробной информации о записи в журналы см. Log::write().
Параметры
- смешанное
$msg - Сообщение для журнала.
- целое число|строка
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- строка|массив
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Способы, используемые из Cake\Utility\MergeVariablesTrait
_mergePropertysource protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединить одно свойство со значениями, объявленными во всех родительских классах.
Параметры
- строка
$property - Имя объединяемого свойства.
- массив
$parentClasses - Массив классов, которые нужно объединить.
- массив
$options - Параметры объединения свойства, см. _mergeVars()
_mergePropertyDatasource protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединить все ключи свойства.
Параметры
- массив
$current - Текущее объединённое значение.
- массив
$parent - Значение родительского класса.
- логическое
$isAssoc - Выполнять ли слияние в ассоциативном режиме.
Возвращает
mixedОбновлённое значение.
_mergeVarssource protected
_mergeVars( array $properties , array $options [] )
Объединяет список $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны рассматриваться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- массив
$properties - Массив свойств и стратегии слияния для них.
- массив
$optionsнеобязательно [] - Параметры, используемые при объединении свойств.
Способы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClasssource protected
_setModelClass( string $name )
Устанавливает свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны.
Параметры
- строка
$name - Имя класса.
loadModelsource public
loadModel( string|null $modelClass null , string|null $modelType null )
Загружает и создаёт объекты репозитория, необходимые этому объекту.
Обычно используется для загрузки объектов ORM Table, если они необходимы. Также может использоваться для загрузки других типов репозиториев, которые использует ваше приложение.
Если поставщик репозиториев не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
objectСозданный экземпляр модели.
Вызывает исключение
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentExceptionЕсли используется тип, который не зарегистрирован.
UnexpectedValueExceptionЕсли тип модели не определён
modelFactorysource public
modelFactory( string $type , callable $factory )
Зарегистрировать вызываемый объект для создания репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция-фабрика.
- вызываемый объект
$factory - Функция-фабрика, используемая для создания экземпляров.
modelTypesource public
modelType( string|null $modelType null )
Установить или получить тип модели, который будет использоваться этим классом
Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|$this$this
Краткое описание констант
integer | CODE_ERROR Код ошибки по умолчанию | 1 |
integer | NORMAL Постоянная для создания обычных оболочек. | |
integer | QUIET Постоянные для создания бесшумных оболочек. | |
integer | VERBOSE Постоянная для создания подробных оболочек. |
Краткое описание свойств
Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait
Свойства, используемые из Cake\Datasource\ModelAwareTrait
$modelClasssource
public string
Полное имя основного класса модели. Должно быть в форме множественного числа. CakePHP не будет склонять имя.
Пример: Для объекта с именем 'Комментарии', modelClass будет 'Комментарии'. Классы плагинов должны использовать имена в формате Plugin.Comments , чтобы корректно загружать модели из соответствующего плагина.
© 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.1/class-Cake.Console.Shell.html