我想在Zend Framework 2项目中使用Doctrine 1。它具有旧的下划线/目录类命名样式。如果我是对的,这与PSR0自动加载兼容。所以我按照我认为正确的方式配置了它。但事实并非如此-(
当我通过浏览器访问我的相册控制器时,我收到以下错误:
Fatal error: Class 'AlbumApiControllerDoctrine_Query' not found in /project/application_zf2/module/AlbumApi/src/AlbumApi/Controller/AlbumController.php on line [...]
我的误解在哪里?
这是我的项目结构
/project
/application
/application_zf2
/module/AlbumApi/src/AlbumApi/Controller
/AlbumController.php
/composer.json
/init_autoloader.php
/library
/Doctrine
/Doctrine/MoreDirectories
/Doctrine.php
composer.json:
{
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": ">=2.2.4",
"zendframework/zend-developer-tools": "dev-master"
},
"include-path": ["../library/Doctrine"],
"autoload": {
"psr-0": {
"Doctrine_": "../library/Doctrine"
}
}
}
相册控制器
<?php
namespace AlbumApiController;
use AlbumApiControllerAbstractRestfulJsonController;
use ZendViewModelJsonModel;
class AlbumController extends AbstractRestfulJsonController
{
public function getList()
{ // Action used for GET requests without resource Id
$query = Doctrine_Query::create()
->from('User b')
->where('b.plz LIKE ?', $plz.'%');
$result = $query->fetchArray();
return new JsonModel($result);
}
}
Doctrine 1不使用名称空间,因此您必须编写Doctrine_Query
而不仅仅是Doctrine_Query
。