Можно или рекомендуется группировать команды Laravel во вложенные группы? - PullRequest
0 голосов
/ 30 сентября 2018

Мы видим ремесленные команды Laravel в типичном формате <module>:<action>, поэтому есть ...

php artisan migrate:refresh
php artisan cache:clear
// etc.

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

php artisan l5-swagger:generate

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

php artisan myapp:auth:create-admin

В отличие от простого

php artisan myapp:create-admin
// OR
php artisan auth:create-admin

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

php artisan myname:myapp:auth:create-admin

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

Есть ли такие команды уже там?Можно ли сделать это способом, аналогичным группированию маршрутов?

Я хочу избежать создания "суперкоманды", содержащей подкоманды, что-то вроде:

php artisan myapp:command Auth CreateAdmin

1 Ответ

0 голосов
/ 07 ноября 2018

Ниже приведен пример команды, доступной в моем приложении:

 ps4
  ps4:editor:create                       Create first data ThemeEditor in the database. Options : update | dump
  ps4:editor:export-css                   Export CSS
  ps4:editor:import-css                   Import CSS
  ps4:editor:import-value                 Create first data ThemeEditor in the database
  ps4:export:document                     Routine to generate static file base on release section of backoffice
  ps4:export:html                         Export Accessbility as html files in export.zip file : Requirement : You should put zip file on propal folder.
  ps4:generate                            Full document generation
  ps4:generate:blur:image                 Generate image blur for one document.
  ps4:generate:blur:zoom                  Regenerate all Zoom base64 blur
  ps4:generate:image                      Generate all images of your document
  ps4:generate:onepage                    generate concat of all html in one page
  ps4:generate:uglify                     Uglify generated html/assets to be spyproof
  ps4:generate:vocalization               Generate mp3 by page for a document
  ps4:import:documents                    Massive document Import
  ps4:import:html                         Import Accessbility content from html files
  ps4:import:vocalisation                 Import vocalisation files
  ps4:import:xml                          Import Accessbility content from xml file
  ps4:lunch-worker                        Lunch worker and check if they are alive
  ps4:media:image                         Post traitment media image
  ps4:media:video                         Post traitment media video
  ps4:migrate:accessibility-content       Migrate Accessibility to raw content
  ps4:monitoring:worker                   Command line to monitor our worker
  ps4:optimize:article                    Optimize image on article view.
  ps4:page:generate                       Full document generation
  ps4:page:reset-name                     Reset name of page per number page
  ps4:pdf:html                            Generate html files for specific document and specific pdf.
  ps4:pdf:image                           Convert pdf in images with different size, format, quality.
  ps4:pd:2txt                             Extract from pdf all text splitted by page.
  ps4:worker                              Spawn worker for image traitment

И вашу команду можно настроить с помощью атрибута $signature:

namespace App\Console\Commands\Editor;

use Illuminate\Console\Command;

class CreateCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'ps4:editor:create {foo}';
}
...