ThinkPHP3.2.3除了Library目录下面的命名空间之外,我们还可以注册其他的根命名空间,例如:
'AUTOLOAD_NAMESPACE' => array( 'My' => THINK_PATH.'My', 'One' => THINK_PATH.'One', )
配置了上面的AUTOLOAD_NAMESPACE
后,如果我们实例化下面的类库
new \My\Net\IpLocation(); new \One\Util\Log();
会自动加载对应的类库文件
ThinkPHP/My/Net/IpLocation.class.php ThinkPHP/One/Util/Log.class.php
如果命名空间不在Library目录下面,并且没有定义对应的AUTOLOAD_NAMESPACE
参数的话,则会当作模块的命名空间进行自动加载,例如:
new \Home\Model\UserModel(); new \Home\Event\UserEvent();
由于ThinkPHP/Library目录下面不存在Home目录,也没在AUTOLOAD_NAMESPACE
参数定义Home命名空间,所以就把Home当成模块命名空间来识别,所以会自动加载:
Application/Home/Model/UserModel.class.php Application/Home/Event/UserEvent.class.php
注意:命名空间的大小写需要和目录名的大小写对应,否则可能会自动加载失败。