php artisan key generate

Comments

pwaring commented Aug 24, 2017

Description:

Application key [base64:KEY_HERE=] set successfully.

Steps To Reproduce:

Possible fixes

I can think of two ways to improve this for the user:

Unfortunately I’m new to Laravel so don’t feel confident providing a patch to a piece of core functionality.

The text was updated successfully, but these errors were encountered:

We are unable to convert the task to an issue at this time. Please try again.

The issue was successfully created but we are unable to update the comment at this time.

themsaid commented Aug 24, 2017 •

Alternatively you can use the Laravel installer which does that for you. https://github.com/laravel/installer

pwaring commented Aug 24, 2017

The reason I opened this issue though is that key:generate shouldn’t make that assumption, as it’s not guaranteed to be true. Making a false assumption results in a incorrect status message to the user.

themsaid commented Aug 24, 2017

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

This is mentioned in the installation guide.

However I see your point, feel free to open a PR if you want.

melvinmt commented Jul 12, 2019

devcircus commented Jul 12, 2019

shubham-agr commented Jan 26, 2020

shubham-agr commented Jan 26, 2020

I solved this by cache command.
php artisan config:cache

0length commented Jan 28, 2020

I solved this by cache command.
php artisan config:cache

bobylito commented Mar 26, 2020

I was going to create a new issue for that 🙂 Hopefully GitHub hinted me to this issue. I have stumbled into the same issue. The main problem is DX: the message is misleading and a warning message in the doc is simply not enough since we’re not likely to read it.

I’m having a look at the code right now, and I hope I can contribute something here 👍

f4z3k4s commented May 11, 2020

TobbyBlaze commented Jun 4, 2020 •

I hope this helps you.

emads3 commented Apr 15, 2021

Still have the same issue and tried all the solutions

zavre-c commented Apr 15, 2021 •

I hope this helps you.

Hey
I didn’t understand why or how this happens
how php has cached key already

Update:
Laravel caches the config in bootstrap folder
It has the cached config which gives the key
it is by default git ignored
#37011

Источник

Использование команд консоли Artisan в Laravel

После того как мы устанавливаем Laravel на свой компьютер, нам становится доступен такой инструмент как Artisan.

Artisan – это интерфейс командной строки или CLI-приложение, который позволяет выполнять целое множество команд при разработке веб-приложения на Laravel. Таким образом, является отличным помощником веб-разработчика, который в значительной степени может сократить некоторые рутинные операции при разработке.

Файл с названием «artisan» физически находится в директории сайта Laravel, в терминале мы обращаемся к нему через php с указанием имени этого файла. Для примера, давайте рассмотрим список всех доступных команд, вызвав таким образом справку по интерфейсу.

Просмотр списка доступных команд

В результате выполнения команды в окне консоли мы увидим все доступные команды для этого инструмента.
php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Как вы можете заметить, команд целое множество. Однако на практике большинство из них может быть и не разу не пригодятся. Далее я решил опубликовать список команд, который могут оказаться полезными в ряде случаев.

Запуск локального сервера

Для генерации нового ключа (обычно создаётся автоматически при установке)

Создание нового файла контроллера

Будет создана папка app/Http/Cotrollers и файл с классом контроллера ContactController.php

Создание файла валидации данных

Будет создана папка app/Http/Requests/, в ней будет создан файл ContactRequest.php

Создание файла — класс модели

где Contact — имя модели, параметр -m добавляет файл миграции

Выполнение миграции базы данных

Файлы миграции базы данных располагаются в отдельной директории /database/migrations/. Эта команда запускает миграцию данных из этих файлов в базу данных.

Отмена миграции на один шаг назад

Если вы выполняли миграцию в несколько шагов, то каждый предыдущий шаг может быть отменён с помощью этой команды.

Отмена миграции на 3 шага назад

Давайте предположим, что вы выполняли команду миграции базы данных несколько раз. После чего последние три миграции по каким-то причинам стало необходимо отменить. Команда отменит последние миграции, и вернёт таблицы в базе в то состояние, как было до этих трёх миграций.

Отмена всех миграций

Выполнив эту команду, все миграции будут отменены, и таблицы в базе данных будут удалены до исходного состояния.

Очистка внутреннего кэша Laravel

Внутренний кэш предназначен для ускорения работы Laravel, создаётся он автоматически. Иногда при разработке, чтобы изменения вступили в силу, его может потребоваться очищать.

Но и в конце хотелось бы добавить пару команд npm, которые не относятся к «artisan», но часто используются при разработке. Npm – это менеджер пакетов, который входит в состав Node.js. Node.js как правило устанавливается попутно с Laravel, и выполняет ряд задач по проекту. В основном это работа с преобразованием файлов CSS и JS.

Преобразование всех файлов JS/CSS

Согласно правилам, в файле «миксе» webpack.mix.js который находится в корне сайта, будет выполнено преобразование файлов. Таким образом, внося какие-либо изменения в CSS либо JS файлы, необходимо выполнять преобразование, перед тем как изменения можно увидеть в браузере.

Автоматическое преобразование файлов JS/CSS

В предыдущем случае, команду следует запускать после каждого изменения файлов. Запуска в этом режиме, отслеживание изменений и преобразование файлов будет происходить автоматически.

Источник

Laravel. Установка, настройка, создание и деплой приложения

Итак, у вас есть желание попробовать или узнать о фреймворке Laravel.

Если вы хорошо знакомы с другими PHP фреймворками — для вас это не составит особого труда, если же нет — это отличный выбор для первого фреймворка.

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Статья очень большая. Рекомендую читать ее полностью во время выходных.

Установка

Установка окружения будет происходить в среде *nix (на сайте так же есть мануал по установке на Windows, плюс к этому вам нужен будет сервер, например WAMP и Git).

Предположим, что у Вас совсем чистенькая ОС. Тогда откройте терминал и введите эти строчки скопируйте и вставьте

Создадим проект laravel в папке habr

Перейдем в созданный проект и убедимся, что все работает, запустив команду php artisan serve

Локальный сервер будет доступен по адресу http://localhost:8000.

Перейдя по адресу http://localhost:8000 вы должны увидеть красивую заставку как в начале поста.

Настройка

Для соединения с базой данных (далее БД) у Laravel есть конфигурационный файл database.php, находится он в папке app/config/.
Сначала создадим БД и пользователя в MySQL

Отлично! У нас есть все данные для доступа к MySQL : пользователь habr с паролем my_password и БД habr на хосте localhost. Перейдем в файл конфигурации БД и изменим наши настройки.

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

В Laravel есть отличные инструменты — Миграции и Построитель Схем.

Во первых создадим таблицу миграций:

Если настройки соединения с БД правильны, то мы готовы создавать миграции и таблицы.
Но перед этим хочу вас познакомить с установкой дополнительных пакетов, которые можно использовать для более эффективного и быстрого создания веб приложения.

Laravel 4 Generators

Мега полезный инструмент — generators от Jeffrey Way. GitHub.

Он добавляет в список artisan много полезных команд, таких как:

Установка пакета

После этого нужно обновить зависимости проекта. Введите в терминале

Последним штрихом будет занесение в кофигурационный файл app/config/app.php в список провайдеров приложения строки

Создание приложения

Предположим, что мы создаем некий блог сайт со скидками. Для этого нам нужно:

Набросаем схему таблиц в БД. У меня получилось что-то такое:
php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

За это спасибо generator‘у. Так как все, что я сделал — это прописал 10 строк, кстати, вот и они:

Я надеюсь этот пример использования генератора достаточно наглядно показал, каким образом его использовать и насколько он полезен.

Чего нам еще не хватает — так это некоторых связок между таблицами.

Важно знать! При добавлении foreign key к колонке в таблице нужно убедится, что колонка является unsigned.

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

Взгянув на схему БД видим ситуацию по лучше
php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

На данный момент все ссылки на ресурсы являются открытыми, и по ним можно переходить всем кому угодно.
Допустим, добавим роль admin. По ссылке http://localhost:8000/roles видим следующую картину:
php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Немного о шаблонах и шаблонизаторе Blade в Laravel.
Для файлов шаблонов используется раширение .blade.php. Заглянув в файл app/views/layouts/scaffold.blade.php мы видим

Первым делом подумаем о защите всех ресурсов. Для этого нам нужно ввести авторизацию.

Создадим новый контроллер LoginContoller в папке app/controllers

И добавим для него несколько шаблонов

Hash — это класс шифрования, который использует метод bcrypt, чтобы пароли в БД хранились в зашифрованом виде (Laravel Security).

Метод нашего Контроллера login() авторизирует пользователя по email или username и перенаправляет на страницу, с которой он попал под фильтр авторизации. В случае не совпадения данных, перенаправляет обратно с входящими данными, сообщением о ошибке, но без пароля.

Таким образом у нас есть Контроллер, который отвечает за авторизацию.

Следующим шагом для скрытия всех ресурсов от доступа будет изменение файла app/routes.php, который содержит маршруты приложения.

Ко всем маршрутам, заключенным в Route::group(array(‘before’ => ‘admin.auth’)) будет применятся фильтр admin.auth, который проверяет, является ли пользователь гостем, или нет, и в случае, если является — отправит его на страницу входа. Про фильтры можно почитать тут, а про группировку маршрутов тут. Другой фильтр Route::group(array(‘before’ => ‘un_auth’)) будет проверять, является ли пользователь вошедшим на сайт, и если проверка выполнятся — то он его разлогинивает.

Для нормальной работы изменим файлы логина и регистрации:

Что же, теперь можна заняться ресурсами. Начнем с городов. Первым делом изменим в Модели City правила валидации:

Для удобства перехода между ссылками добавим меню в app/views/layouts/scaffold.blade.php, а так же добавим jQuery и jQuery-UI для будующих нужд

Далее перейдем к редактированию правил валидации в Модели Offer :

Как работают селекты можно глянуть тут Forms & Html (Dropdown Lists). Таким образом мы имеем возможность выбирать из существующих городов и компаний в БД.

Чего нам еще не хватает — так это добавление тегов к скидкам. Тут нам поможет jquery-ui с autocomplete для добавления нескольких значений. Для этого расширим файл с скриптами app/views/offers/create.blade.php:

Последнее, что нам нужно сделать — это изменить логику создания скидок.

Во первых, расширим правило expires, что бы скидка заканчивалась не раньше завтрашнего дня, и не позже, чем через 1 месяц. Далее выделим все id тегов в отдельный массив, проверив их наличие в БД. После идет небольшая проверка, введены ли теги. А под самый конец очень интересный прием: в Eloquent для связки таблиц можна использовать разные отношения (Eloquent Relationships), к примеру, у Модели Offers может быть много тегов, соответсвенно пропишем это в Модели

Осталось изменить файл app/views/offers/index.blade.php

И мы видим отличную картину, которая полностью отображает структуру скидки:
php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Теперь осталось изменить app/views/offers/edit.blade.php, app/views/offers/show.blade.php и метод update в app/controllers/OfferController.php.

Код для app/views/edit.blade.php

Изменим метод update в OfferController :

Далее изменим файл app/views/offers/show.blade.php:

Теперь и после изменения скидки у нас будет красиво выводится ее структура с изображением и всеми реляционными данными.

Главная страница сайта

Настало время наконец то для создания главной страницы сайта.

Для начала создадим новый layout :

А так же файл стилей:

Потом переопределим маршрут главной страницы:

Добавим в HomeController недостающий метод index :

Создадим папку app/views/homeи добавим туда файл index.blade.php, а так же создадим файл _preview.blade.php в папке app/views/offers

Далее нужно добавить поиск скидок по тегам, городам и компаниям. Для этого добавим 3 маршрута в файл app/routes.php сразу же за home :

Теперь добавим недостающие методы в HomeController :

Что бы все это дело заиграло, изменим файл app/views/offers/_preview.blade.php, добавив ссылок:

Кликаем, переходим, скидки сортируются и выводятся в соответствии с критериями.

Теперь сделаем представление для просмотра отдельной скидки:

Для того, чтобы можно было просматривать скидку полностью, добавим маршрут и метод, а так же в конце я добавил форму для комментариев. Для ее работоспособности также нужно добавить маршрут и метод в нужном контроллере:

Далее идет работа с промежуточной таблицей offers для скидки и пользователя. Эту связь нужно указать в Модели Offer

Как видите, мы тут явно задаем таблицу comments как промежуточную, и указываем, что так же в этой таблице содержатся дополнительные колонки body и mark + в этой таблице используются штампы времени (создания и обновления).

Используя проверку, есть ли уже комментарий к конкретной скидке от текущего пользователя (метод contains()), перенаправляем обратно. Если же нет — то прикрепляем новый комментарий от пользователя к скидке с его оценкой и текстом.

Для вывода комментариев на странице скидки изменим немного файл app/views/offers/_show.blade.php

Теперь под скидками пользователи могут оставлять свои комментарии, каждый по одному, и если пользователь уже оставил комментарий — то форма не будет для него выводиться.

Следующим шагом будет распределить права доступа к сайту. Для начала укажем связь между пользователями и ролями:

Далее добавим в админке управление ролями пользователей:

Помним, что в Модель User нужно добавить связь с ролями:

Создадим контроллер UserController :

Создадим папку app/views/users и добавим туда 3 файла:

А так же изменим немного метд index контроллера RolesController

Теперь автодополнение работает.

Далее, для того, что бы у нас с вами не было разбежностей, откатим все миграции и воспользуемся отличным инструментом, который нам предоставляет Laravel — это DatabaseSeeder. С помощью него мы можем наполнить нашу БД какими-то конфигурационными, или стартовыми / тестовыми данными. Для этого сначала создадим класс UsersTableSeeder в папке app/database/seeds:

Логика такова: очищаем таблицу, создаем массив данных и вставляем в БД.

Проделаем то же самое с RolesTableSeeder :

Далее создадим еще один класс Seeder :

Таким образом мы добавили роль admin нашему первому пользователю.

Чтобы очистить БД и заполнить ее нашими начальными данными сначала изменим файл app/database/seeds/DatabaseSeeder.php таким образом:

И для принятия всех изменений запустим через консоль команду (находясь в папке /workspace/php/habr/):

Далее выстроим логику на права. Внесем изменения в Модель User :

Далее изменим файл маршрутов, что бы он соответствовал правам пользования сайтом:

Как вы заметили, я добавил к маршруту комментирования дополнительный фильт. Таки образом, никто, кроме обычных пользователей сайта не сможет оставлять комментарии к скидкам.

Изменим метод login() контроллера LoginController :

Теперь при входе на сайт обычные пользователи будут попадать на главную страницу, а администраторы, модераторы и менеджеры в админпанель.

Изменим немного навигационное меню для администрации:

Отлично — теперь каждой роли будут видны те ресурсы, к которым у них есть доступ.

Emails

Важным аспектом для web приложения является отправка почты.

Laravel использует SwiftMailer для создания писем (Laravel Mail).

Параметр pretend отвечает за то, нужно ли отправлять письма. Если его выставить в true, то оправка писем происходить не будет, но в логах сайта (app/storage/logs) будут сохраняться отчеты об отправке.

Первым делом я хочу, чтобы при регистрации пользователю отправлялось письмо с приветствием, для этого создам шаблон в папке app/views/emails:

Далее изменим метод store() нашего LoginController :

Функция trans() — вспомогательная функция, которая выводит локализированную строку из конфигурации. Можете заглянуть в папку app/lang/en/reminders.php и увидить какие ошибки могут выводиться. Для смены локализации на, допустим, русский язык вам понадобится изменить в файле app/config/app.php значение locale с en на ru и добавить папку app/lang/ru, в которой воссоздать файлы как в папке app/lang/en.

Далее добавим 4 маршрута:

Для перехода на восстановление так же добавим ссылку на странице логина:

А так же недостающие методы в LoginController :

Теперь любой пользователь может восстановить свой пароль.

Добавим еще ссылку для входа и регистрации на сайт на главной странице:

Для того, что бы ограничить вывод на страницах только тех скидок, которые еще не закончились нам понадобится добавить еще один метод в Модель Offer :

Пагинация

Таким образом на одной странице будут выводиться только 15 результатов, и внизу будут переходы по страницам. Количество результатов легко изменяемо — достаточно передать нужное число в метод, например paginate(1) даст 1 результат на страницу.

Ничего вроде сложного в этом нет.

Для удобства так же сделаем и в админ панели.

Последнее, что хочется добавить к сайту — так это вывод последних комментариев на страницах и закладки из скидок, к которым пользователь оставил комментарии.

Начнем с добавления комментариев в каркасе страницы:

А так же создадим сам шаблон comment :

Не забываем добавлять связь между Моделью Comment User и Offer :

А так же вспомогательная функция для сокращения и избавлением от html-тегов комментария.

Осталось добавить закладки для пользователя:

Деплой

Процес регистрации там довольно прост.

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Далее создаем новое приложение.

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

Окружение запущено и работает.

php artisan key generate. Смотреть фото php artisan key generate. Смотреть картинку php artisan key generate. Картинка про php artisan key generate. Фото php artisan key generate

fortrabbit замораживает не активные приложения. То, как разморозить приложение можно почитать тут.
Теперь для того, чтобы залить наше приложение на fortrabbit идем в терминал:

После всего, осталось зайти через ssh и запустить миграции. Итак:

Потом введите свой пароль и вы на сервере.
Перейдите в папку htdocs и выполните:

Если настройка БД была правильной — никаких проблем возникнуть не должно.

Для работы с Composer на хостинге можно даже не использовать ssh — достаточно в коммите добавить такой триггер:

Кстати, в своем репозитории на GitHub я добавил еще seeds и картинки для скидок.

Поиграться можно тут: Habra Offers.

Заключение

Надеюсь вам было интересно это читать, и полезно это делать. Laravel — отличный фреймворк для разработки веб приложений разной сложности.

Основные, и даже больше, аспекты я постарался объяснить. И для интереса дам домашнее задание:

Пожалуй неплохие таски, как считаете?

Об авторе
Сбор статистики

Все грамматические ошибки пишите, пожалуйста в личку.

Haters gonna die (Поспорил, что напишу это).

Источник

Laravel 8 · Консоль Artisan

Введение

Artisan – это интерфейс командной строки, входящий в состав Laravel. Он предлагает ряд полезных команд, которые помогут при создании приложения. Для просмотра списка всех доступных команд Artisan можно использовать команду list :

Каждая команда также включает в себя экран «справки», который отображает и описывает доступные аргументы и параметры команды. Чтобы просмотреть экран справки, используйте help перед именем команды:

Laravel Sail

Если вы используете Laravel Sail в качестве локальной среды разработки, не забудьте использовать командную строку sail для вызова команд Artisan. Sail выполнит ваши команды Artisan в контейнерах Docker вашего приложения:

Tinker (REPL)

Laravel Tinker – это мощный REPL для фреймворка Laravel, основанный на пакете PsySH.

Установка

Все приложения Laravel по умолчанию включают Tinker. Однако вы можете установить Tinker с помощью Composer, если вы ранее удалили его из своего приложения:

Ищете графический интерфейс для взаимодействия с приложением Laravel? Зацените Tinkerwell!

Использование

Tinker позволяет взаимодействовать полностью со всем приложением Laravel из командной строки, включая модели Eloquent, задачи, события и многое другое. Чтобы войти в среду Tinker, выполните команду tinker Artisan:

Вы можете опубликовать конфигурационный файл Tinker с помощью команды vendor:publish :

Глобальный помощник dispatch и метод dispatch класса Dispatchable зависят от «garbage collection» для помещения задания в очередь. Следовательно, при использовании Tinker вы должны использовать Bus::dispatch или Queue::push для отправки заданий.

Список разрешенных команд

Черный список псевдонимов

Как правило, Tinker автоматически создает псевдонимы классов, когда вы взаимодействуете с ними в Tinker. Тем не менее, вы можете запретить такое поведение для некоторых классов, перечислив их в массиве dont_alias конфигурационного файла config/tinker.php :

Написание команд

В дополнение к командам Artisan, вы можете создавать пользовательские команды. Команды обычно хранятся в каталоге app/Console/Commands ; однако вы можете выбрать другое месторасположение, если эти команды могут быть загружены менеджером Composer.

Генерация команд

Чтобы сгенерировать новую команду, используйте команду make:command Artisan. Эта команда поместит новый класс команды в каталог app/Console/Commands вашего приложения. Если этот каталог не существует в вашем приложении, то Laravel предварительно создаст его:

Структура команды

Давайте рассмотрим пример команды. Обратите внимание, что мы можем запросить любые необходимые зависимости в методе handle команды. Контейнер служб Laravel автоматически внедрит все зависимости, типы которых объявлены в этом методе:

Хорошей практикой повторного использования кода считается создание «простых» консольных команд с делегированием своих задач службам приложения. В приведенном примере мы внедряем класс службы для выполнения «затратной» отправки электронных писем.

Анонимные команды

Анонимные команды обеспечивают альтернативу определению консольных команд в виде классов. Точно так же, как замыкания маршрутов являются альтернативой контроллерам. В рамках метода commands файла app/Console/Kernel.php Laravel загружает файл routes/console.php :

Этот файл не определяет маршруты HTTP, он определяет точки входа (маршруты) для консольных команд в приложении. В этом файле с помощью метода Artisan::command можно определить все анонимные консольные команды. Метод command принимает два аргумента: сигнатуру команды и замыкание, которое получает аргументы и параметры команды:

Замыкание привязано к базовому экземпляру команды, поэтому у вас есть полный доступ ко всем вспомогательным методам, к которым вы обычно можете обращаться в команде, созданной с помощью класса.

Типизация зависимостей

Помимо получения аргументов и параметров, замыкание анонимной команды также принимает дополнительные зависимости из контейнера служб, необходимые для внедрения:

Описания анонимных команд

При определении анонимных команд, можно использовать метод purpose для добавления описания команды. Это описание будет отображаться при запуске команд php artisan list и php artisan help :

Определение вводимых данных

Аргументы

Все предоставленные пользователем аргументы и параметры заключаются в фигурные скобки. В следующем примере команда определяет один обязательный аргумент user :

По желанию можно сделать аргументы необязательными или определить значения по умолчанию:

Параметры

Параметры со значениями

Давайте рассмотрим параметр, ожидающий значение. Если пользователь должен указать значение для параметра, то добавьте суффикс = к имени параметра:

В этом примере пользователь может передать значение для параметра. Если параметр не указан при вызове команды, то его значение будет null :

Параметру можно присвоить значение по умолчанию, указав его после имени. Если значение параметра не передано пользователем, то будет использовано значение по умолчанию:

Псевдонимы параметров

Чтобы назначить псевдоним при определении параметра, вы можете указать его перед именем параметра и использовать символ разделителя | для отделения псевдонима от полного имени параметра:

Массивы данных

При вызове этого метода аргументы user могут передаваться по порядку в командную строку. Например, следующая команда установит значение user как [‘foo’, ‘bar’] :

Метасимвол * можно комбинировать с необязательным определением аргумента, чтобы разрешить ноль или более экземпляров аргумента:

Параметр со множеством значений

При определении параметра, ожидающего множество значений, каждое значение передаваемого команде параметра должно иметь префикс с именем параметра:

Описания вводимых данных

Вы можете назначить описания входным аргументам и параметрам, отделив имя аргумента от описания с помощью двоеточия. Если вам нужно немного больше места для определения вашей команды, то распределите определение на несколько строк:

Ввод/вывод команды

Получение входных данных

Если вам нужно получить все аргументы в виде массива, вызовите метод arguments :

Запрос для ввода данных

Помимо отображения вывода, вы можете попросить пользователя предоставить данные во время выполнения вашей команды. Метод ask отобразит пользователю указанный вопрос, примет его ввод, а затем вернет эти данные, полученные от пользователя, обратно в команду:

Запрос подтверждения

Автозавершение

Метод anticipate используется для автоматического завершения возможных вариантов. Пользователь по-прежнему может дать любой ответ, независимо от подсказок автозавершения:

Вопросы с множественным выбором

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

Вывод данных

Вы можете использовать метод line для отображения простого неокрашенного текста:

Вы можете использовать метод newLine для отображения пустой строки:

Таблицы

Метод table упрощает корректное форматирование нескольких строк / столбцов данных. Все, что вам нужно сделать, это указать имена столбцов и данные для таблицы, и Laravel автоматически рассчитает подходящую ширину и высоту таблицы:

Индикаторы выполнения

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

Регистрация команд

Программное выполнение команд

Кроме того, вы можете передать методу call команду полностью в виде строки:

Передача массива значений

Если ваша команда определяет параметр, который принимает массив, то вы можете передать массив значений этому параметру:

Передача значений логического типа

Очереди команд Artisan

Вызов команд из других команд

Настройка заготовок

Опубликованные заготовки будут расположены в каталоге stubs корня вашего приложения. Любые изменения, внесенные вами в эти заготовки, будут учтены при создании соответствующих классов с помощью команд make Artisan.

События

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *