这两天的大部分时间里,我一直在绞尽脑汁。我正在使用 Zend Apigility 创建一个 RESTful Web API 应用程序。Apigility 使用 ZF2 构建其应用程序。
我创建了一个在整个 API 中使用的自定义类。
我想读一些自动加载的配置信息来连接到内存缓存服务器。正在自动加载到服务管理器中的文件是:
memcache.config.local.php:
return array(
'memcache' => array(
'server' => '10.70.2.86',
'port' => '11211',
),
);
我的 REST 服务调用的自定义类称为 checkAuth:
checkAuth.php:
namespace equiAuth\V1\Rest\AuthTools;
use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class checkAuth implements ServiceLocatorAwareInterface{
protected $services;
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->services = $serviceLocator;
}
public function getServiceLocator()
{
return $this->services;
}
public function userAuths() {
//** Some Code
$config = $this->getServiceLocator()->get('config');
// **
}
}
我相信我正在使用以下代码将服务管理器从我的 module.config.php 注入到类中:
'service_manager' => array(
'invokables' => array(
'checkAuth' => 'equiAuth\V1\Rest\AuthTools\checkAuth',
),
),
当我尝试从 ServiceLocator 的 get 方法读取“配置”时点击代码时,出现以下错误:
致命错误:在非对象上调用成员函数 get()
我知道我错过了一些东西,但我无法为我的生活弄清楚什么。