Как создать подкаталоги для заданий в Laravel 5.1?

Я использую Laravel 5.1. Обычно для создания заданий я делаю php artisan make:job SomeJobName. В основном это создаст задание SomeJobName в каталоге app/Jobs. Но что, если мое приложение огромно. В итоге у меня будет много файлов в этой папке. Хочу немного организовать. Я хочу создать подкаталоги, например:

app/Jobs/Users/
   Store.php
   Update.php
   Delete.php
app/Jobs/Posts
   Store.php
   Update.php
   Delete.php

Каков рекомендуемый подход для достижения этой цели?


person Homo Sapien    schedule 15.07.2015    source источник


Ответы (3)


artisan make:* команды будут принимать относительное пространство имен, поэтому вы можете сделать что-то вроде этого:

php artisan make:job Users/Store

Вам даже не нужно создавать подкаталоги, так как artisan создаст их, если они не существуют.

person nCrazed    schedule 15.07.2015
comment
Потрясающий. Это лучшее решение. Я уже знал, что могу вручную исправить пространство имен и т. д., и я могу вручную создать или изменить команду artisan, но я искал такое решение. Спасибо. - person Homo Sapien; 16.07.2015

Это не проблема. Просто создайте их вручную и соблюдайте правила PSR.

Например, файл app/Jobs/Posts/Store.php будет содержать такой класс:

namespace App\Jobs\Posts;

use App\Jobs\Job;

class Store extends Job {}

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

person Luceos    schedule 15.07.2015
comment
Спасибо, но я уже знал, что могу сделать что-то подобное. Я искал решение, подобное nCrazed. Спасибо, в любом случае :) - person Homo Sapien; 16.07.2015

Это должно быть возможно, если вы впоследствии настроите пространства имен.

Создайте подкаталог (например, Users), скопируйте свое задание (например, Store.php) и измените пространство имен на namespace App\Jobs\Users;. В сценарии-потребителе вы должны импортировать его с помощью use App\Jobs\Users\Store; или использовать полный квалификатор \App\Jobs\Users\Store.

person mjoschko    schedule 15.07.2015
comment
Спасибо, но я уже знал, что могу сделать что-то подобное. Я искал решение, подобное nCrazed. Спасибо, в любом случае :) - person Homo Sapien; 16.07.2015