如何更好地组织所有命名空间?

时间:2016-10-08 22:28:38

标签: php php-7

我在每个页面中手动添加名称空间,但是有更好的方法吗?

use James\Art\AutoLoad;
use James\Art\Search;
use James\Art\Binary;
use James\Art\RD\Test;
use James\Art\RD\UTest;
use James\Art\RD\UTest2;

谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

use James\Art\{
  Autoload,
  Search,
  Binary,
  RD\Test,
  RD\UTest,
  RD\Utest2
};

它只适用于PHP7,您可以看到here以获取更多信息。

答案 1 :(得分:0)

有几次我一直在使用许多相关的命名空间 - 例如Symfony / Doctrine Entities或Value Objects,所以为了帮助澄清特定类的用途,我故意不这样做使用最小可能的名称,而不是添加下一级别 - 导致代码如下:

section Section1;

shared Query1 = 1 + 1;

shared Query2 = Query1 + 1;

清楚地知道我正在使用哪种类,而不必回顾<?php namespace xyz; use xyz\Vo; use xyz\Entity; use James\Art; ... $x = new Vo\Email; $y = new Vo\Username; $z = Entity\User; $auto = Art\AutoLoad; $search = Art\Search; 行,恕我直言,使得代码对于正在发生的事情更加明显。

如果我在一个公共名称空间中使用了几个类,它还会产生副作用,即减少所需的use行数,而不会使文件头更复杂。