当需要在控制器重加载自定义的命名空间需要 Zend\Loader\StandardAutoloader 去注册命名空间对应的目录。
比如结构如下
zf2
-----config
-----core(自定义命名空间Core所在的目录)
-----module
-----public
-----略
可以在index.php 定义一个常量
defined("CORE", 'core');后面core指定到core目录
再在init_autoloader.php文件中注册命名空间:
if (CORE) {//加载自定义核心基类
Zend\Loader\AutoloaderFactory::factory(array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array('Core'=>CORE)
)
));
}
以后在Core下定义的类就可以在通过Core\classname.php来调用了
----------以上是非composer 调用方式,下面是composer方式调用-------------
vendor/composer目录下面有个autoload_namespaces.php的文件,这里可以定义你要加载的第三方命名空间
<?php
// autoload_namespaces.php generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'Zend\\' => $vendorDir . '/zendframework/zendframework/library/',
'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/',
'Core\\'=> $baseDir.'/',
);
注意:值为命名空间的上一级目录