如何在PHP上导入多个子命名空间


How to import several sub-namespaces on PHP

我有这个代码

use App'Entities'Job;
use App'Entities'Category;
use App'Entities'City;
use App'Entities'JobType;
$viewModel['categories']= Category::all();
$viewModel['cities'] = City::all();
$viewModel['jobTypes'] = JobType::all();

我想避免重复,只放一次类似use App'Entities'*的东西,然后导入App'Entities后面的所有名称。

通常在Laravel这样的框架上,可能需要导入许多模型或类来使用它们,如果存在通用的use构造,则会更容易。

从PHP 7开始,您可以编写:

use App'Entities'{Job, Category, City, JobType};

PHP 5没有提供这样的快捷方式。

请参阅http://php.net/manual/en/migration70.new-features.php了解PHP 7中的其他更改。

更新:

正如@alister bulman在下面的一条评论中所建议的那样,在PHP 5中,你能做的最好的事情就是声明你使用的类的名称空间(可能用一个比名称短的别名),然后指定相对于这个名称空间的类的名称。

例如:

use App'Entities as E;
$viewModel['categories']= E'Category::all();
$viewModel['cities'] = E'City::all();
$viewModel['jobTypes'] = E'JobType::all();