Конзолата за приложения се използват главно за извършване на вторични или фонови задачи, като например генериране на код, индекса за търсене на съставяне, изпращане на електронна поща и т.н. Yii предоставя инструмент за развитие на конзолно приложение, придържайки се към обектно-ориентиран подход. Тя позволява конзола заявление за достъп до ресурси, които се използват от голяма уеб-базирано приложение (например, база данни).
1. Общ преглед ¶
Тя представлява всяка задача конзола в Yii в екип. А конзола команда е описан в клас, който наследява от CConsoleCommand.
След като използвате уеб приложение yiic за създаване на първоначалните заявления прототипи ще бъдат защитени в два файла:
- yiic - скрипт за Linux / Unix;
- yiic.bat - скрипт за Windows.
В конзолата можете да въведете следните команди:
След като сте въвели ще бъде показан списък на всички налични в момента команди. По подразбиране, тази команда, предоставена от Yii (така наречените системни команди) и команди, предназначен за специфични приложения (наречени потребителски команди).
За да получите помощ на терена, можете да стартирате
За да стартирате команда, в следния формат:
2. Създаване на екипи ¶
Конзолата команди са във файл клас в папката, посочена в CConsoleApplication :: commandPath. Подразбиране е защитена / команди.
А конзола команда клас трябва да бъде наследен от CConsoleCommand. името на класа трябва да бъде на XyzCommand. където Xyz се отнася до името на командата, първата буква на която е показан в горния случай. Например, екипът трябва да използвате класа на сайта SitemapCommand. Имена конзолни команди буквите е от значение.
Съвет: Като конфигуриране CConsoleApplication :: commandMap. Можете да промените реда на именуване на команди и класове място, ако желаете.
За да създадете нова команда, трябва или да приложи метод CConsoleCommand :: план (). или едно или повече действия (да бъдат описани по-долу).
Когато влезете в конзолата команда приложение стартира метод CConsoleCommand :: план (). Параметрите на метода се прехвърлят в съответствие със следната заглавие:
където $ аргументи - допълнителни параметри, подавани от командния ред.
Вътре в конзолата команда за достъп до потребителския модел на конзолата приложение, можете да използвате Yii :: приложения (на). След полученото копие може да се отнася до различни компоненти, като например свързване към база данни (Yii :: приложения (на) -> db). Доколкото може да се съди, това е много подобен на конвенционалните уеб приложение.
Инфо: Започвайки от версия 1.1.1, можете да създадете глобални команди, които се използват от всички приложения. За това определено YII_CONSOLE_COMMANDS променлива среда и стойността му е писано на пътя до директорията с глобалните класове на конзолни команди.
3. Действие ¶ А конзола команда
Забележка: Тази функция е достъпна от версия 1.1.5.
в командата конзола често се налага да се работи с различни параметри. Някои от тях може да се изисква, а други не. Може да се наложи да приложи подкоманда да изпълняват различни подзадачи. Всичко е опростено чрез използване на действия.
Действие конзола команда - Метод в своя клас. Името на метода трябва да е във формат actionXyz на. където Xyz се отнася до името на действието и първата буква, намалената ставка в главни букви. Например, метод actionIndex определя действие наречен индекс.
За да стартирате конкретно действие, използвайте следния формат:
Допълнителна име-стойност двойки предават на стъпките на метода, наречени параметри. Xyz опция стойност съответства на метода на $ ЮЯ действие. Например, ако ние определяме следната команда клас:
Тогава всички от следните конзолни команди ще предизвика actionIndex ( "Новини", 5):
Ако опцията не е уточнено (тоест, вместо --type --type = News), съответният параметър на действие ще бъде настроен да е вярно.
Забележка: Алтернативни формати определят опции като --type новини или -t новини не се поддържат.
Ако декларирате параметър като масив, може да отнеме масив от стойности:
За да се премине масив от стойности, трябва да посочите същата възможност няколко пъти:
Командите горе, ще стартират actionIndex (масив ( "Новини", "член")).
От версия 1.1.6, Yii позволява анонимни параметри за действие и глобални възможности.
Анонимни параметри - е опции на командния ред не са опции. Например, индексът на отбора yiic карта на сайта --limit = 5 новини случва анонимен параметър със стойността на новини. Кръстен параметър (по желание) лимит е настроен да се равнява на 5.
За да използвате анонимни параметри, действия трябва да се опише параметър, наречен $ аргументи:
В масива $ аргументи ще съдържат всички налични анонимни стойности на параметрите.
Глобалните опции - командния ред параметри на които са общи за всички дейности на екипа. Например, може да се наложи да се обединят с множество действия, за да имате обща опция многословно. Разбира се, че е възможно да се определи параметър $ многословно за всяко действие, но това е по-добре да попитам неговия екип класа обществено имущество, което автоматично ще направи световната многословно вариант:
В горния код ви позволява да използвате опцията многословно:
4. Върнете код ¶
Забележка: Възможността да се уточни кода връщане ще се появи в командата конзола във версия 1.1.11.
Стартира автоматично конзолни команди, като Cron или непрекъсната сървъра интеграция, е важно да се знае, дали изпълнението на екипа е завършена с успех или провал. Точно за тази цел и са предназначени кодове на връщане.
Тези кодове са цели числа 0-254 (този интервал е даден в PHP), където 0 е върната в случай на успех, както и всички други стойности се използват за евентуални грешки.
Както в метод пробег (). и действията на екипа, можете да се върнат цяло число. Тя ще се използва като кодът на връщане.
Ако нещо конзола команда не се връща, заявлението се прекратява с кода 0.
5. Създаване на конзолно приложение ¶
По подразбиране, ако е създаден с помощта на приложението yiic уеб приложение. конфигурация на приложението конзола съхраняват в защитена / конфигурационния / console.php. Тъй като конфигурацията на уеб приложения, този файл е PHP-скрипт връща масив с начални стойности на екземпляр на заявлението за конзола. Това означава, че в този файл можете да настроите всяка обществена CConsoleApplication собственост.
Тъй като команди на конзолата често са създадени за подпомагане на уеб-базирани приложения, който искате да използвате едни и същи ресурси (като свързвания към база данни), които се използват в уеб приложение. Това може да стане чрез конфигуриране на съответните компоненти в конфигурацията на конзола приложение:
Форматът на конфигурацията е много подобен на този, използван в уеб приложение, така че CConsoleApplication CWebApplication и наследи същия базов клас.
Свързани статии