如果您只是想获得一些类似对象的服务(例如,一些 AuthService),您可以将其注册为服务(您可能已经完成了,因为您调用getAuthService()
了控制器)并使用 ServiceLocator 来获取它,或者 - 甚至更好地进行单元测试 -通过工厂将其注入您的控制器。您可能想看看ZfcUser以了解它是如何完成的。
如果您 - 出于某种原因 - 坚持使用这种硬编码方法(这实际上与框架不符),我认为您只是错误地设置了自动加载或 ZfCommons 模块未激活。
第一的
检查您的 application.config.php 是否有已激活的模块。至少需要激活 ZfCommons 和 Application。
第二
检查 ZfCommons 的 Module.php 以初始化自动加载器:
<?php
namespace ZfCommons;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\Loader\StandardAutoloader;
class Module implements AutoloaderProviderInterface,
{
// snip
/**
* {@inheritDoc}
*/
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
// snip
}
这将为命名空间 ZfCommons 初始化类自动加载。
如果您的文件名根据PSR-0正确映射到类和接口,它现在应该可以工作了。