Класс Shell
Базовый класс для утилит командной строки для автоматизации задач программистов.
- CakeObject
-
Shell
Прямые подклассы
Косвенные подклассы
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Console/Shell.php
Краткое описание констант
-
integer1 -
integer1 -
integer0 -
integer2
Краткое описание свойств
- Экземпляр ConsoleOptionParser, настроенный для данного класса.
$OptionParserpublic - Коллекция задач для команды, используемая для создания задач.
$Taskspublic -
$_helpersprotectedСодержит ранее созданные помощники.array -
$_lastWrittenprotectedintegerКоличество байтов, последней записанных в поток вывода, используемое при перезаписи предыдущего сообщения.
-
$_taskMapprotectedНормализованный массив задач.string -
$argspublicСодержит аргументы, обработанные из командной строки.array -
$commandpublicКоманда (метод/задача), которая выполняется.string -
$interactivepublicЕсли true, скрипт запросит разрешение на выполнение действий.boolean -
$modelClasspublicОсновное имя класса модели данного шелла, первая модель в свойстве $uses.string -
$namepublicИмя шелла в камелизационной форме.string -
$paramspublicСодержит переключатели команд, обработанные из командной строки.array -
$pluginpublicstringИмя плагина, к которому принадлежит шелл. Автоматически устанавливается ShellDispatcher при создании шелла.
- Объект stderr.
$stderrpublic - Объект stdin.
$stdinpublic - Объект stdout.
$stdoutpublic -
$taskNamespublicСодержит загруженные задачи.array -
$taskspublicСодержит задачи для загрузки и инициализации.array -
$usespublicСодержит модели для загрузки и инициализации.array
Краткое описание методов
- __construct() publicСоздаёт экземпляр Shell.
- __get() publicПерегрузка get для ленивого создания задач
- __isset() publicЛенично загружает модели с помощью метода loadModel(), если они объявлены в $uses
- _checkUnitTest() protectedДействие для создания unit-теста
- _configureStdErrLogger() protectedНастройка логгера stderr
- _configureStdOutLogger() protectedНастройка логгера stdout
- _controllerName() protectedСоздаёт правильное множественное название контроллера для указанного имени класса контроллера
- _controllerPath() protectedСоздаёт правильный путь к контроллеру для указанного имени класса контроллера
- _displayHelp() protectedОтображает справку в правильном формате
- _getInput() protectedЗапрашивает у пользователя ввод и возвращает его.
- _loadModels() protectedЕсли $uses является массивом, загружает каждую модель из массива
- _loggerIsConfigured() protectedПроверяет, настроен ли данный логгер
- _modelKey() protectedСоздаёт правильное нижнее подчёркивание ключа модели для ассоциаций
- _modelName() protectedСоздаёт правильное именованное имя модели (единственное число) для указанного имени
- _modelNameFromKey() protectedСоздаёт правильное имя модели из внешнего ключа
- _pluginPath() protectedНаходит правильный путь для плагина. Просматривает $pluginPaths для нужного плагина.
- _pluralHumanName() protectedСоздаёт множественное человекочитаемое имя, используемое в представлениях
- _pluralName() protectedСоздаёт множественное имя для представлений
- _singularHumanName() protectedСоздаёт единственное человекочитаемое имя, используемое в представлениях
- _singularName() protectedСоздаёт единственное имя для использования в представлениях.
- _useLogger() protected
Используется для включения или выключения вывода логгирования в stdout и stderr. Если вы не хотите видеть в stdout или stderr всё, что регистрируется через CakeLog, вызовите эту функцию с первым параметром false
- _welcome() protectedОтображает заголовок для оболочки
- clear() publicОчищает консоль
- createFile() publicСоздаёт файл по указанному пути
- dispatchShell() public
Перенаправляет команду в другую оболочку. Аналогично CakeObject::requestAction(), но предназначено для запуска оболочек из других оболочек.
- err() public
Выводит одно или несколько сообщений об ошибках в stderr. Если нет параметров, выводит только новую строку.
- error() public
Отображает отформатированное сообщение об ошибке и завершает работу приложения с кодом состояния 1
- getOptionParser() publicПолучает экземпляр анализатора опций и настраивает его.
- hasMethod() publicПроверяет, есть ли в этой оболочке вызываемый метод с заданным именем.
- hasTask() publicПроверяет, есть ли в этой оболочке задача с заданным именем.
- helper() publicЗагружает указанный класс помощника оболочки
- hr() publicВыводит серию символов дефиса в стандартный вывод, служит визуальным разделителем.
- in() publicЗапрашивает у пользователя ввод и возвращает его.
- initialize() public
Инициализирует оболочку, выступает в роли конструктора для подклассов, позволяет настроить задачи до выполнения оболочки.
- loadModel() publicЗагружает и создаёт экземпляры моделей, необходимых этой оболочке.
- loadTasks() publicЗагружает задачи, определённые в public $tasks
- nl() publicВозвращает последовательность одной или нескольких переводов строк.
- out() public
Выводит одно или несколько сообщений в stdout. Если нет параметров, выводит только новую строку.
- overwrite() publicПерезаписывает уже выведенный текст.
- param() publicБезопасно получает значения в $this->params.
- runCommand() publicЗапускает оболочку с предоставленным argv.
- shortPath() publicДелает абсолютный путь к файлу более читаемым
- startup() public
Запускает оболочку и отображает приветственное сообщение. Позволяет проверять и настраивать до команды или основного выполнения.
- wrapText() public
Обёртывает блок текста. Позволяет установить ширину и отступы для блока текста.
Подробное описание метода
__construct()source public
__construct( ConsoleOutput $stdout null , ConsoleOutput $stderr null , ConsoleInput $stdin null )
Создаёт экземпляр Shell.
Параметры
-
ConsoleOutput$stdoutнеобязательно null - Объект ConsoleOutput для stdout.
-
ConsoleOutput$stderrнеобязательно null - Объект ConsoleOutput для stderr.
-
ConsoleInput$stdinнеобязательно null - Объект ConsoleInput для stdin.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#ShellПереопределяет
CakeObject::__construct() __get()source public
__get( string $name )
Перегрузка get для ленивого создания задач
Параметры
- строка
$name - Имя свойства для доступа.
Возвращает
ShellОбъект задачи
__isset()source public
__isset( string $name )
Ленично загружает модели с помощью метода loadModel(), если они объявлены в $uses
Параметры
- строка
$name - Имя модели для поиска.
_checkUnitTest()source protected
_checkUnitTest( )
Действие для создания unit-теста
Возвращает
booleanУспех
_controllerName()source protected
_controllerName( string $name )
Создаёт правильное множественное число имени контроллера для указанного имени класса контроллера
Параметры
- string
$name - Имя класса контроллера
Возвращает
stringМножественное число имени контроллера
_controllerPath()source protected
_controllerPath( string $name )
Создаёт правильный путь к контроллеру для указанного имени класса контроллера
Параметры
- string
$name - Имя класса контроллера
Возвращает
stringПуть к контроллеру
_displayHelp()source protected
_displayHelp( string $command )
Отображает справку в правильном формате
Параметры
- string
$command - Команда для получения справки.
_getInput()source protected
_getInput( string $prompt , string|array $options , string $default )
Запрашивает у пользователя ввод и возвращает его.
Параметры
- string
$prompt - Текст запроса.
- string|array
$options - Массив или строка опций.
- string
$default - Значение ввода по умолчанию.
Возвращает
Либозначение по умолчанию, либо введённое пользователем значение.
_loadModels()source protected
_loadModels( )
Если $uses — массив, загружает каждый из моделей в массиве
Возвращает
boolean_loggerIsConfigured()source protected
_loggerIsConfigured( string $logger )
Проверяет, настроен ли данный логгер
Параметры
- string
$logger - Имя логгера для проверки
Возвращает
boolean_modelKey()source protected
_modelKey( string $name )
Создаёт правильный подчеркнутый ключ модели для ассоциаций
Параметры
- string
$name - Имя класса модели
Возвращает
stringЕдиничное имя ключа модели
_modelName()source protected
_modelName( string $name )
Создаёт правильное имя модели с использованием CamelCase (единственное число) для указанного имени
Параметры
- string
$name - Имя
Возвращает
stringИмя модели в CamelCase и единственном числе
_modelNameFromKey()source protected
_modelNameFromKey( string $key )
Создаёт правильное имя модели из внешнего ключа
Параметры
- string
$key - Внешний ключ
Возвращает
stringИмя модели
_pluginPath()source protected
_pluginPath( string $pluginName )
Находит правильный путь к плагину. Ищет плагин в $pluginPaths.
Параметры
- string
$pluginName - Имя плагина (например, DebugKit)
Возвращает
stringПуть к плагину.
_pluralHumanName()source protected
_pluralHumanName( string $name )
Создаёт множественное число человекочитаемого имени, используемого в представлениях
Параметры
- string
$name - Имя контроллера
Возвращает
stringМножественное число человекочитаемого имени
_pluralName()source protected
_pluralName( string $name )
Создаёт множественное число имени для представлений
Параметры
- string
$name - Используемое имя
Возвращает
stringМножественное число имени для представлений
_singularHumanName()source protected
_singularHumanName( string $name )
Создаёт единственное число человекочитаемого имени, используемого в представлениях
Параметры
- string
$name - Имя контроллера
Возвращает
stringЕдинственное число человекочитаемого имени
_singularName()source protected
_singularName( string $name )
Создаёт единственное число имени для использования в представлениях.
Параметры
- string
$name - Множественное число подчеркнутого значения.
Возвращает
stringИмя
_useLogger()source protected
_useLogger( boolean $enable true )
Используется для включения или отключения вывода потока логгирования в stdout и stderr. Если вы не хотите видеть всё, что записывается в CakeLog, в stdout или stderr, вызовите эту функцию с первым параметром false
Параметры
- boolean
$enableoptional true - Включить или выключить вывод CakeLog
clear()source public
clear( )
Очищает консоль
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::clearcreateFile()source public
createFile( string $path , string $contents )
Создаёт файл по указанному пути
Параметры
- string
$path - Куда поместить файл.
- string
$contents - Содержание файла.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::createFiledispatchShell()source public
dispatchShell( )
Отправляет команду другой оболочке. Аналогично CakeObject::requestAction(), но предназначено для запуска оболочек из других оболочек.
Использование:
Со строковой командой:
return $this->dispatchShell('schema create DbAcl');
Избегайте использования этой формы, если у вас есть строковые аргументы, содержащие пробелы. Динамическая оболочка будет вызвана неправильно. Используйте эту форму только для простого диспетчеризации команд.
С массивом команд:
return $this->dispatchShell('schema', 'create', 'i18n', '--dry');
Возвращает
mixedРезультат работы другой оболочки.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::dispatchShellerr()source public
err( string|array $message null , integer $newlines 1 )
Выводит одно или несколько сообщений об ошибках в stderr. Если параметров нет, выводит только новую строку.
Параметры
- string|array
$messageoptional null - Строка или массив строк для вывода
- integer
$newlinesoptional 1 - Количество добавляемых новых строк
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::errerror()source public
error( string $title , string $message null )
Отображает отформатированное сообщение об ошибке и завершает приложение со статусом 1
Параметры
- строка
$title - Заголовок ошибки
- строка
$messageнеобязательный null - Необязательное сообщение об ошибке
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::errorgetOptionParser()source public
getOptionParser( )
Получает экземпляр анализатора опций и настраивает его.
Переопределяя этот метод, вы можете настроить ConsoleOptionParser перед его возвращением.
Возвращает
ConsoleOptionParserСсылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::getOptionParserhasMethod()source public
hasMethod( string $name )
Проверяет, имеет ли этот shell вызываемый метод с заданным именем.
Параметры
- строка
$name - Имя метода для проверки.
Возвращает
booleanСсылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::hasMethodhasTask()source public
hasTask( string $task )
Проверяет, имеет ли этот shell задачу с заданным именем.
Параметры
- строка
$task - Имя задачи для проверки.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::hasTaskhelper()source public
helper( string $name )
Загрузка заданного класса помощника shell
Параметры
- строка
$name - Имя класса помощника. Поддерживает синтаксис плагина.
Возвращает
BaseShellHelperЭкземпляр класса помощника
Исключения
RuntimeExceptionЕсли предоставлено неверное имя класса
hr()source public
hr( integer $newlines 0 , integer $width 63 )
Выводит на стандартный вывод последовательность символов "-", использующуюся как визуальный разделитель.
Параметры
- целое число
$newlinesнеобязательный 0 - Количество новых строк для добавления перед и после
- целое число
$widthнеобязательный 63 - Ширина строки, по умолчанию 63
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::hrin()source public
in( string $prompt , string|array $options null , string $default null )
Запрашивает у пользователя ввод и возвращает его.
Параметры
- строка
$prompt - Текст запроса.
- строка|массив
$optionsнеобязательный null - Массив или строка опций.
- строка
$defaultнеобязательный null - Значение ввода по умолчанию.
Возвращает
смешанныйЗначение по умолчанию или введённое пользователем.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::ininitialize()source public
initialize( )
Инициализирует Shell, действует как конструктор для подклассов, позволяет настроить задачи до запуска shell.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::initializeloadModel()source public
loadModel( string $modelClass null , mixed $id null )
Загружает и создаёт модели, необходимые для данного shell.
Параметры
- строка
$modelClassнеобязательный null - Имя класса модели для загрузки
- смешанный
$idнеобязательный null - Начальный идентификатор, который должен иметь экземпляр модели
Возвращает
смешанныйtrue при нахождении одной модели и создании экземпляра, возвращает ошибку, если модель не найдена.
Исключения
MissingModelExceptionесли класс модели не может быть найден.
loadTasks()source public
loadTasks( )
Загружает задачи, определённые в public $tasks
Возвращает
booleannl()source public
nl( integer $multiplier 1 )
Возвращает последовательность одной или нескольких строк переноса.
Параметры
- целое число
$multiplierнеобязательный 1 - Количество повторений последовательности переноса строки
Возвращает
строкаСсылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::nlout()source public
out( string|array $message null , integer $newlines 1 , integer $level Shell::NORMAL )
Выводит одно или несколько сообщений в стандартный вывод. Если параметры не переданы, выводится только символ новой строки.
Уровни вывода
Существует 3 встроенных уровня вывода. Shell::QUIET, Shell::NORMAL, Shell::VERBOSE. Уровни вывода verbose и quiet соответствуют переключателям вывода verbose и quiet в большинстве оболочек. Использование Shell::QUIET для сообщения означает, что оно всегда будет отображаться. В то время как использование Shell::VERBOSE означает, что оно будет отображаться только при включенном подробном выводе.
Параметры
- строка|массив
$messageнеобязательный null - Строка или массив строк для вывода
- целое число
$newlinesнеобязательный 1 - Количество новых строк для добавления
- целое число
$levelнеобязательный Shell::NORMAL - Уровень вывода сообщения, см. выше.
Возвращает
целое число|booleanВозвращает количество байтов, возвращенных при записи в стандартный вывод.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::outoverwrite()source public
overwrite( array|string $message , integer $newlines 1 , integer $size null )
Перезаписать некоторые уже выведенные данные.
Полезно для создания прогресс-баров или когда нужно заменить текст, уже выведенный на экран, новым.
Предупреждение Нельзя перезаписать текст, содержащий символы новой строки.
Параметры
- массив|строка
$message - Сообщение для вывода.
- целое число
$newlinesнеобязательный 1 - Количество добавляемых новых строк.
- целое число
$sizeнеобязательный null - Количество байтов для перезаписи. По умолчанию равно длине последнего выведенного сообщения.
Возвращает
целое число|booleanВозвращает количество байтов, возвращенных при записи в стандартный вывод.
param()source public
param( string $name )
Безопасный доступ к значениям в $this->params.
Параметры
- строка
$name - Имя параметра для получения.
Возвращает
строка|boolean|nullЗначение. Возвращает null, если параметр не существует.
runCommand()source public
runCommand( string $command , array $argv )
Выполняет Shell с предоставленным argv.
Делегирует вызовы задачам и разрешает методы внутри класса. Команды ищутся в следующем порядке:
- Метод в Shell.
- Соответствующее имя задачи.
-
main()метод.
Если Shell реализует метод main(), все отсутствующие вызовы методов будут отправлены в main() с оригинальным именем метода в argv.
Параметры
- строка
$command Имя команды, которую нужно запустить в этом Shell. Если этот аргумент пустой, и в Shell есть метод
main(), он будет вызван вместо него.- массив
$argv - Массив аргументов для запуска Shell. В этом массиве не должно быть имени Shell.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::runCommandshortPath()source public
shortPath( string $file )
Делает абсолютный путь к файлу более читабельным
Параметры
- строка
$file - Абсолютный путь к файлу
Возвращает
строкукороткое имя пути
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::shortPathstartup()source public
startup( )
Инициализирует Shell и отображает сообщение приветствия. Позволяет проверять и настраивать перед выполнением команды или основного кода.
Переопределите этот метод, если хотите убрать информацию о приветствии или изменить поток перед выполнением команды.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::startupwrapText()source public
wrapText( string $text , string|integer|array $options array() )
Обёртывание блока текста. Позволяет задать ширину и отступы для блока текста.
Параметры
-
widthШирина обёртывания. По умолчанию 72 -
wordWrapОбёртывание только по пробелам. По умолчанию true. -
indentОтступ текста с помощью предоставленной строки. По умолчанию null.
Параметры
- строка
$text - Текст для форматирования.
- строка/целое число/массив
$optionsнеобязательно массив() - Массив параметров или целое число для обёртывания текста.
Возвращает
строкаОбёрнутый/отступленный текст
См. также
CakeText::wrap()Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::wrapTextМетоды, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойством в определении $class. Значение свойства этого класса будет объединено поверх $class'
Это обеспечивает некоторую DRY-магию CakePHP. Если вы хотите отключить ее, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Название свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет задать несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно массив() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированный обертка для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно массив() - Список параметров для использования при вызове $method
Возвращает
смешанныйВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Смотрите CakeLog::write() для получения дополнительной информации о записи в журналы.
Параметры
- строка
$msg - Сообщение для журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null/строка/массив
$scopeнеобязательно null Область(и), в которой создается сообщение для журнала. Смотрите CakeLog::config() для получения дополнительной информации о журналах.
Возвращает
логическоеУспех записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для связи контроллеров друг с другом или для подключения плагинов к основному приложению. requestAction может использоваться для возвращения рендеренных представлений или извлечения возвращаемого значения из действий контроллера.
Внутри этого метода используется Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse()
Передача данных POST и GET
Данные POST и GET можно моделировать в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка/массив
$url Строковый или основанный на массиве URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать передаваемые и именованные аргументы в параметре $url.
- массив
$extraнеобязательно массив() Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST и именованных/передаваемых аргументов.
Возвращает
смешанныйЛогическое значение true или false об успехе/неудаче, или содержимое рендерного действия, если в $extra установлен 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
строкаИмя этого класса
Подробное описание свойств
$OptionParsersource
public ConsoleOptionParser
Экземпляр ConsoleOptionParser, настроенный для этого класса.
$_lastWrittensource
protected целое число
Количество байт, последними записанных в поток вывода, используется при перезаписи предыдущего сообщения.
$interactivesource
public boolean
Если true, скрипт запросит разрешение на выполнение действий.
true
$modelClasssource
public string
Имя основного класса модели для этого шелла, первой модели в свойстве $uses.
null
$pluginsource
public string
Имя плагина, к которому принадлежит шелл. Автоматически устанавливается ShellDispatcher при создании шелла.
null
$taskssource
public array
Содержит задачи для загрузки и инициализации.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::$tasksarray()
$usessource
public array
Содержит модели для загрузки и инициализации.
Ссылка
http://book.cakephp.org/2.0/ru/console-and-shells.html#Shell::$usesarray()
© 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.
https://api.cakephp.org/2.9/class-Shell.html