如何导入包中的所有模型

时间:2016-02-15 08:03:57

标签: php laravel laravel-5 laravel-5.2

我使用的是Laravel 5.2。 我正在为我的项目制作一些包。

在App中,有些模型已经在应用程序中定义和使用它们。 在我正在创建的包中,我想使用那些模型,我现在正在通过单独导入来使用它们,如

use App\User;
use App\Group;
...

因此,对于我必须单独导入的每个不同模型,有什么方法可以导入所有模型。所以我不必单独添加它们。

1 个答案:

答案 0 :(得分:4)

可悲的是,不,你现在无法用PHP做到这一点。它与Laravel无关,但与php内部和语言设计无关。

PHP 7 带来了grouping namespaces的可能性,因此您可以执行以下操作:

use App\{User, Group, OtherClass};

而不是在自己的行上列出每个use语句,但到目前为止,使用通配符仍然是未完成的请求。

在他的博客文章中,Dayle Rees提出了一个解决此限制的聪明技巧(此处:http://daylerees.com/php-namespaces-explained/),即使用“父”命名空间并从中实例化子类。

从链接页面右转:

use Dayle\Blog as Cms;

$post = new Cms\Content\Post;
$page = new Cms\Content\Page;
$tag  = new Cms\Tag;

这远远不是通配符匹配所带来的好处,但可能符合您的喜好。