Php 使用Composer在Zend Framework 2中自动加载原则1
我想在Zend Framework 2项目中使用原则1。并且它具有旧的下划线/目录类命名样式。如果我是对的,它与PSR0自动加载兼容。所以我按照我认为正确的方式配置了它。但事实并非如此-( 通过浏览器访问AlbumController时,我遇到以下错误:Php 使用Composer在Zend Framework 2中自动加载原则1,php,zend-framework2,composer-php,autoload,doctrine-1.2,Php,Zend Framework2,Composer Php,Autoload,Doctrine 1.2,我想在Zend Framework 2项目中使用原则1。并且它具有旧的下划线/目录类命名样式。如果我是对的,它与PSR0自动加载兼容。所以我按照我认为正确的方式配置了它。但事实并非如此-( 通过浏览器访问AlbumController时,我遇到以下错误: Fatal error: Class 'AlbumApi\Controller\Doctrine_Query' not found in /project/application_zf2/module/AlbumApi/src/AlbumApi
Fatal error: Class 'AlbumApi\Controller\Doctrine_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 AlbumApi\Controller;
use AlbumApi\Controller\AbstractRestfulJsonController;
use Zend\View\Model\JsonModel;
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);
}
}
条令1不使用名称空间,所以你必须编写\doctor\u Query
,而不仅仅是doctor\u Query
本杰明·埃伯莱(Benjamin Eberley)在2012年4月最后一次提交条令1。你为什么需要使用那个古老的图书馆?我知道有人会提出这样的问题。;-)1.)原则1支持外键作为主键和嵌套集,原则2不支持。2)我在业余时间做我正在做的项目。将所有模型代码和服务迁移到条令2需要至少1周的全职时间,这意味着1个月的业余工作时间。我已经投入了大量时间从ZF1迁移到ZF2。在我看来,对主要分支的支持是一种缩短。我认为这是PHP库的一个常见问题。哦,非常感谢。现在可以了。那么我对名称空间的理解还不够透彻。所以,我必须在为我的文件使用名称空间时,在反斜杠前面加上前缀?