这是否有一个PHP命名空间的快捷方式?
问题描述:
我试图找到一种方法来批量应用这些命名空间,因为这将不方便写出来。我知道我可以简单地做,使用jream\ as j
但我想看看是否有可能避免反斜杠。这是否有一个PHP命名空间的快捷方式?
require '../jream/Autoload.php';
use jream\Autoload as Autoload,
jream\Database as Database,
jream\Exception as Exception,
jream\Form as Form,
jream\Hash as Hash,
jream\Output as Output,
jream\Registry as Registry,
jream\Session as Session;
new Autoload('../jream');
难道没有办法沿这些方向说话:jream\\* as *;
?
任何提示,将不胜感激:)
答
至少,你可以跳过所有冗余as
别名:
use jream\Autoload,
jream\Database,
jream\Exception,
jream\Form,
jream\Hash,
jream\Output,
jream\Registry,
jream\Session;
如果你想使用命名空间中的一切,而不需要通过键入了一个一个,那的确是唯一真正的选择是别名命名空间作为一个整体,用一个反斜杠:
use jream as j;
new j\Autoload;
答
是不是有办法沿着这些方向说话:jream \ * as *; ?
没有,但你可以这样做:
// use-jream.php
class Autoload extends jream\Autoload {}
class Database extends jream\Database {}
...
// index.php
require_once 'use-jream.php'
new Autoload('../jream');
但我不会真的建议这样做。
和当然,如果你想只改变默认的命名空间:
namespace jream;
new Autoload('../jream');
这是所有的import jream.*
所能意味着PHP,因为PHP绝对没有办法确定如果一个类可能可能存在在某个命名空间中,除非你通知它。
+0
嘿谢谢你的回答,我喜欢关于设置命名空间的最后一部分! – JREAM
谢谢,这可能是最好的办法。 – JREAM