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

тийм билдинг

В допълнение към стандартната команди Artisan, можете също да създадете свои собствени команди. Отбори обикновено се съхраняват в папката на приложението / конзолата / команди. но можете да ги поставите на всяко друго място, където могат да се намерят и изтегляне Composer.

Генериране на отбора

За да създадете нова команда, използвайте Artisan-команда од изработка: команда. Тази команда ще създаде нов екип клас в папката на приложението / конзолата / команди. Ако тази папка не съществува, тя се създава, когато за първи път стартирате команда од направи: команда. Генериран отбор ще съдържа стандартен набор от свойства и методи, които са общи за всички команди:

След това е необходимо да се регистрирате в екип. тогава той може да се управлява чрез интерфейса на Artisan команда.

За да създадете нов отбор може да използва Artisan-команда од изработка: конзола. което ще създаде приставка, с която можете да започнете да работите.

Това ще създаде клас в приложението / конзолата / команди / SendEmails.php. Когато създавате команда може да се използва од --command ключ за име на командата в терминала:

Екипът структура

След генериране на командата, трябва да попълните на свойствата на подписа и описанието в своя клас, които се използват при показване на вашия екип в списъка на команди (списък ш). метод PHP дръжка () се нарича, когато се обадите на вашия екип. В него можете да поставите необходимата логика за вас.

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

Нека разгледаме един пример на екипа. Ние можем да въведе необходимите зависимост от екипа на дизайнер. контейнер услуга Laravel автоматично ще изпълни всички по-горе в дизайнерът зависи от:

Екипът верига

въз основа на алтернативни вина командни определение конзолни команди под формата на класове, просто като насочващата схема са алтернативни контролери. В метода на PHP команди () приложения файл / конзолата / Kernel.php Laravel изтегляния маршрути / console.php файл:

Въпреки факта, че този файл не определя HTTP-маршрути, той определя конзола входни точки (маршрути) в молбата Ви. В този файл можете да определите всичките си маршрути въз основа на схеми, използвайки метода на PHP Artisan. команда (). PHP команда () метод отнема два аргумента: подписването на екипа и на веригата, която получава аргументите и командни бутони:

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

Забележка видове зависимости

Освен получаване на вашите аргументи и аргументи от командния ред на командата закриване можете да определите типа на допълнителни зависимости, които трябва да се измъкнем от контейнера за обслужване:

При определяне на отборите на базата на схеми можете да използвате PHP опише (метод), за да добавите описание на командата. Това описание ще се появи, когато се изпълнява списък од PHP занаятчия или од PHP занаятчия помощ:

Определяне на очакванията на писане

При създаване на конзолни команди често се налага да се получи информация от потребителя чрез аргументи или ключове. В Laravel това е много удобно да се определи очакваната вход от потребителя, като се използва свойството на подписване на вашия екип. Тази функция ви позволява да укажете името, аргументите, както и ключовете за отбора в един единствен, изразителни, маршрут, като синтаксис.

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

Можете да направите един аргумент по избор и се определят стойности по подразбиране за аргументите:

Ключове като аргументи, са под формата на приноса на потребителите. Те се идентифицират с префикс от две тирета (-). Има два вида на бутоните: отнема стойност и не приемате. Ключовете, които не приемат стойност са логични "ключове". Нека да разгледаме този тип ключ:

В този пример, той може да бъде определен од --queue ключ, когато се обадите на Artisan-отбор. Ако тя се предава од --queue ключ. След това стойността му ще бъде вярно. друго невярно:

Сега нека да погледнем на ключовете, които очакват стойности. Необходимостта и се изчислява по ключова символ входни стойности е равна на (=):

В този пример, потребителят може да прехвърля стойността на ключа така:

Key, можете да зададете по подразбиране, като се посочва ключа след името. Тази стойност ще бъде използвана в случай че потребителят не посочи ключова стойност:

За да зададете намаляването на определянето на ключ, можете да го настроите в предната част на името на ключа и да се отдели от отвесна черта (|):

Въвеждане на масиви

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

Когато се обадите тази команда в командния ред може да премине потребителски спорове в ред. Така например, следната команда ще създаде стойност за потребителя, равна на [ 'трънки "," бар "]:

При определяне на ключа, който ще приема въвеждане на масива, всеки предава командата ключ стойност трябва да се предхожда от името на ключа:

вход Описание

Можете да попитате за описание на аргументи и ключ чрез отделянето им с двоеточие. Ако имате нужда от малко повече пространство, за да се определи вашия екип, можете да разделите описанието на няколко реда:

I / O команди

вход четене

По време на изпълнението на командата ти, разбира се, трябва да има достъп до аргументите и опциите, които са били поставени пред него от входа. За да направите това, можете да използвате PHP аргумент () и PHP опция ().

За да прочете стойността на метода на аргумент използване PHP аргумент ():

Ако трябва да прочетете всички аргументи в масив, обадете се на аргументи PHP () метод (за версия 5.2 и по-ранни - метода на PHP аргумент () без аргументи):

Ключовете могат да се четат толкова лесно, колкото аргументи, използвайки метод PHP опция (). За да получите масив от всички ключове, обадете се на опциите на PHP () метод (за версия 5.2 и по-рано - на метода на PHP опция () без аргументи):

Ако аргументът или ключът не съществува, тя ще бъде върната на PHP нула.

поискам

В допълнение към показване на изхода, можете да поискате от данните на потребителя по време на изпълнението на команди. PHP попитам () метод подсказва, ще се въведените данни, а след това да ги върне на своя екип:

PHP тайна () метод е подобен на PHP попитам метод (). но тя не показва данни, въведени от потребителя в конзолата. Този метод е полезен, когато искат чувствителна информация, като парола:

PHP потвърждение (метод) може да се използва, за да получи от една проста потвърждение от потребителя. По подразбиране, този метод се връща лъжа. Но, когато потребител у или да в отговор на искането, методът връща вярно:

PHP очакваме () метод може да се използва, за да се предостави на потребителя опции за избор. Независимо от това дали тези опции, потребителят може да зададете своя собствена версия.

Въпроси с няколко възможни отговора

PHP избор () метод може да се използва за предоставяне на специфичен набор от опции за потребителя. Можете да зададете стойност по подразбиране в случай, не е избрана опцията:

За изход можете да използвате PHP линия () методи. PHP информация (). PHP коментар (). PHP въпрос () и PHP грешка (). Всеки един от тях ще бъде подходящ за използване по смисъла на цвят ANSI за показване на текст. Да вземем за пример, извличат информация послание към потребителя. Обикновено PHP информация () метод показва зелен текст в конзолата:

За да се покаже съобщение за грешка, използвайте метода на PHP грешка (). Тя показва червен текст в конзолата:

За обикновен текстов изход на конзолата, без използването на специални цветове, използвайте PHP линия () метод:

PHP маса () метод позволява лесно да форматирате няколко реда / колони с данни. Просто го давате заглавията и линии. Ширината и височината ще бъде динамично определя въз основа на предадените данни:

За дълги задачи е полезно да се покаже прогрес бар. Използване на изход обект ще може да работи, се движат и да се спре светлина. На първо място, се определят от общия брой на стъпки, който ще бъде процес. След това преминава на индикатора след всяка стъпка:

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

Можете да определите медиите, за да бъдат използвани при изпълнението на екипа, с помощта на од --env ключ:

Сключването на текущата версия Laravel

Можете също да проверите версията на текущата инсталация на Laravel чрез ключ од --version:

Регистрация на отбор

Когато вашият екип е написано, че трябва да го регистрирате в областта на науката. Всички отбори, регистрирани в приложение / конзолата / Kernel.php файла. В него ще намерите списък с команди в имота на команди. За да се регистрирате вашия екип, просто добавете името на командата клас в този списък. Когато Artisan е заредена, всички отбори в този имот, ще бъдат включени в контейнера за обслужване и регистриран Artisan:

Софтуер Command Изпълнение

Понякога трябва да стартирате командния ред отвън. Например, когато искате да стартирате от маршрута или контролера. Можете да използвате метода на PHP повикване () Artisan фасада. Този метод отнема първият аргумент за името на командата, а вторият - масив от аргументи от командния ред. Той ще бъде върнат код за изход:

Използвайки метода на PHP опашка (), можете дори да сложи екип на място, а след това те ще бъдат обработени във фонов режим с помощта на опашката си за манипулатор. Преди да използвате този метод, уверете се, че сте настроили опашката, както и че опашката слушател работи:

Когато трябва да определя стойността на ключ, който не приема стойност низ, например, --force флаг команда ш ш мигрират на: опресняване. можете да предадете на стойност истина или лъжа:

Подаване на команди от други отбори

Понякога трябва да се обадя на другия отбор от тяхната собствена. За да направите това, използвайте метода на PHP повикване (). Това отнема името на командата и набор от неговите аргументи:

Ако искате да се обадите друг отбор и да се забрани производството си в конзолата, използвайте метода на PHP callSilent (). Този метод отнема същите аргументи като PHP повикването (метод):

Екип по планиране Artisan

В този раздел на статията е от значение само за версия 5.0 е
отстранен във версия 5.1.

Преди това, разработчиците е трябвало да се създаде Cron-задачи за всяка конзола команда, която те желаят да се планира. Това е досадно. За планиране конзола команди вече не провежда контрол на версиите и да добавите Cron-задачи, които трябва да се свържете със сървър за SSH. Нека да се опрости живота ни. Laravel разписание команда ви позволява да гъвкаво и категорично определени команди план в Laravel, и сървърът се нуждае само от един-Cron задача.

Вашият екипи план се съхранява в приложението / конзолата / Kernel.php файла. В този клас ще намерите метод PHP график. За да ви помогне да разберете, в метод включен един прост пример. Можете да добавите PHP График обект като планирана задача, както желаете. И на сървъра трябва да добавите една единствена Cron задачи:

Този проблем ще доведе до планировчика всяка минута е от екипи Laravel. А това от своя страна ще се покажат наличните задачи в плана и да извърши необходимото. Просто никъде!

Още примери за планиране

Нека разгледаме още няколко примера за планиране.

Планиране на терминални команди

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