如何导入包中的所有模型


How to import all model in package

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

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

use App'User;
use App'Group;
...

因此,对于我必须单独导入的每个不同模型,是否有任何方法可以导入所有模型。这样我就不必单独添加它们。

可悲的是,不,你不能用目前的PHP来做到这一点。它与Laravel无关,但与php内部和语言设计有关。

PHP 7 带来了对命名空间进行分组的可能性,因此您可以执行以下操作:

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;

这仍然与通配符匹配的好处相去甚远,但可能是您喜欢的。