ПредишенСледващото

В допълнение към богатите възможности за изграждане на уеб приложения, Yii също има пълна поддръжка за конзолни приложения, които обикновено се използват за създаване на фон и изпълнение на целите, които поддържат сайта.

Структурата на заявленията за конзолата е много подобна на структурата на уеб приложение. Тя се състои от един или повече класове Yii \ конзола \ Controller. често се споменава като команди в конзолата среда. Всеки контролер може да има едно или повече действия, както и уеб администратори.

И в двата шаблона проект вече имат конзола заявление. Можете да го стартирате, като се обадите на скрипта Yii, който се намира в главната директория на вашата кандидатура. Вие ще получите списък с наличните команди, ако се позове без никакви параметри:

Както можете да видите на снимката по-, Yii вече дефиниран стандартен набор от наличните команди:

използването на

Можете да започнете работата на контролера на конзолата, като използвате следния синтаксис:

В горния пример, Тя се отнася до действието на контролера. Параметрите ще бъдат заместени в свойствата на класа и аргументи в метода на действие.

Например, MigrateController :: actionUp () с MigrateController :: $ migrationTable миграции и инсталирането на ограничение от 5 миграции може да бъде причинена от следното:

Забележка: Ако използвате конзолата *. не забравяйте да го поставите в кавички "*", за да се избегне неговото тълкуване и замени всички имената на файловете в тази директория.

Влизане скрипт

Input скрипт конзолно приложение - както е index.php файла. се използва в уеб приложение. Input скрипт конзола, обикновено се нарича Yii и се намира в главната директория на приложението. Той съдържа код, подобен на следния:

Този скрипт ще бъде създаден като част от кандидатурата си; можете да го редактирате, ако имате нужда от него. YII_DEBUG да зададете до фалшиво, ако не искат да видят изхода за отстраняване на грешки в случай на грешка, и / или, ако искате да се подобри цялостното представяне. И в двата шаблони, приложението при откриването и отстраняването на влизане скрипт е активирана по подразбиране приложения за осигуряване на по-благоприятна среда за предприемача.

регулиране

Както се вижда от кода доведе по-горе, прилагането конзола използва собствен конфигурационен файл, наречен console.php. В този файл, трябва да се настрои на различните компоненти в молбата и свойствата на прилагането на конзолата.

Ако уеб и конзола заявление има много общи конфигурационните настройки, можете да изберете в общата част в отделен файл и да го включите в двата файла конфигурация (уеб и конзола). Можете да видите пример за "напреднали" шаблона проект.

Съвет: Понякога може да се наложи да изпълните командата конзола, като се използва конфигурация, различна от тази, посочена в запис сценария. Например, можете да използвате Yii мигрират команда, за да се актуализира базата данни на тест, който се определя за всеки набор от тестове. За смяна на конфигурационния файл, просто въведете своя конфигурационен файл чрез appconfig на опция при стартиране на отбора:

Довършваните конзолни команди

Пусков аргумент команди е полезна функция, когато се работи в командния ред. Започвайки с версия 2.0.11, ./yii екип поддържа автоматично довършване Баш и ZSH.

Автоматично довършване на Bash

Уверете се, че за автоматично довършване инструменти за Баш инсталирани. Повечето дистрибуции на Linux се доставят по подразбиране.

Запазване на скрипта за автоматично довършване директория /etc/bash_completion.d/:

За временно ползване, можете да запишете файла в произволна директория и да го свържете към момента на заседанието, което води отбор източник Yii.

Ако скриптът е бил инсталиран в световен мащаб, което трябва да се рестартира на терминала или да изпълни източник на командния

/.bashrc да се даде възможност на автоматичното довършване.

Обърнете се към инструкциите за завършването на раздел в Bash да научат повече за други начини за свързване на автоматичното довършване скриптове във вашата среда.

Автоматично довършване на ZSH

Запазване на скрипта автоматично довършване директория автоматично довършване на скрипта. Например,

Добави тази директория за вашата среда променлива $ fpath. добавяне към края на например

/.zshrc следния ред:

Уверете се, че програмата се изпълнява compinit. Ако не е - да се добавят

/.zshrc в следните направления:

След това рестартирайте терминал, или да изпълните командата

Създайте свои собствени команди

Контролерът конзола и действието

А конзола команда се определя като клас контролер простира Yii \ конзола \ Controller. Класът контролер, можете да зададете един или повече действия, които съответстват на команди под-контролер. При всяко действие, което пишете код, който реализира съответната команда от под-задачи.

Когато стартирате командата, трябва да укажете пътя към действие. Например, мигрират / създадете маршрут призовава под-команда, която съответства на MigrateController на метод :: actionCreate (). Ако по маршрута, предложен в командването на повикване, не показва идентификатор на действие, ще бъде причинено от действието по подразбиране (както и в уеб приложението).

опции

За да замените () метод Yii \ конзола \ Controller :: опции, можете да зададете опциите, които са налични в командата конзола (контролер / actionID). Методът трябва да се върне на списък от атрибути обществени клас. Когато стартирате командата, можете да зададете стойност на опции, използващи --OptionName = OptionValue синтаксис. Тя ще се свърже с атрибут OptionValue OptionName контролер клас.

Ако опцията по подразбиране - това е масив, когато се използва тази опция, командата, стойността ще бъде превърната в масив чрез разделяне част от разделени със запетаи низ.

аргументи

В допълнение към възможностите, екипът може да получи аргументи. Аргументи се предават като параметри на технологичните стъпки, съответстващи на исканата под-команда. Първият параметър съответства на първия аргумент, втората, съответно втората, и така нататък. Ако дадените аргументи, когато призовават командата няма да бъдат достатъчни, параметрите ще бъдат възложени по подразбиране, ако те са определени. Ако стойностите по подразбиране не са определени, и не са били прехвърлени, екипът ще завърши с грешка.

Можете да използвате, за да определите типа на масив. да покаже, че аргументът, трябва да се третират като масив. Масивът се получава чрез разделяне на входния низ със запетая.

опции псевдоними

От версия 2.0.8 в клас конзола команда достъпен метод Yii \ конзола \ контролер :: optionAliases (). Позволява ви да добавите псевдоними за опции.

За да зададете псевдоним, изключете метод Yii \ конзола \ Controller :: optionAliases () в контролера:

Сега следния синтаксис може да се използва, за да изпълните командата:

Следният пример показва как да се опише аргументи:

Кодът на връщане

При разработването на приложение за конзолата е прието да се използва кодът на връщане. Прието код 0 означава, че командата е изпълнена успешно. Ако кодът за върнати е по-голяма от нула, това е индикация за грешка. Редица, върната, когато грешка може потенциално да бъде използван за да намерите повече информация за грешката. Например, един може да посочи неизвестна грешка, както и всички кодове по-горе могат да бъдат запазени за конкретни грешки: грешки при въвеждането, повредени файлове, и нещо друго.

Към конзолата команда код на връщане, просто връща цяло число, в начина на управление действие:

Има няколко предварително дефинирани константи, които можете да използвате:

Една добра практика да се определи от значение за вашия контролер постоянно, ако използвате повече видове грешки.

Форматиране и цвят

Yii конзола поддържа форматиране на продукцията, която е автоматично разгражда до не форматиран, ако тя не се поддържа в терминала, където се изпълнява командата.

Изводът е прост форматирани струни. Ето как можете да се въвеждат някои удебелен текст:

Ако имате нужда да се събират низ динамично комбиниране на няколко стила, най-добре е да използвате ansiFormat ():

Свързани статии

Подкрепете проекта - споделете линка, благодаря!