如何为 Laravel 5.1 中的作业创建子目录?

How to make sub directories for jobs in Laravel 5.1?

我正在使用 Laravel 5.1。通常是为了创造就业机会 php artisan make:job SomeJobName。这基本上会在 app/Jobs 目录中创建一个 SomeJobName 作业。但是,如果我的应用程序很大怎么办。我最终会在该文件夹中拥有 很多 文件。我想稍微组织一下。我想创建如下子目录:

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

推荐的方法是什么?

没问题。只需手动创建它们并遵守 PSR 命名空间规则。

例如,文件 app/Jobs/Posts/Store.php 将包含一个 class,例如:

namespace App\Jobs\Posts;

use App\Jobs\Job;

class Store extends Job {}

您可以从自动生成的版本中复制剩余的 class 或按照 documentation.

以后调整命名空间应该可以。

创建子目录(例如用户),复制您的作业(例如Store.php) 并将命名空间更改为 namespace App\Jobs\Users; 在消费脚本中,您必须使用 use App\Jobs\Users\Store; 导入它 或使用完整限定符 \App\Jobs\Users\Store

artisan make:* 命令将接受相对命名空间,因此您可以这样做:

php artisan make:job Users/Store

您甚至不需要创建 sub-directories,因为 artisan 会在它们不存在时创建它们。