我遇到的情况是我的学说模型Post
位于命名空间Application\Entities
中,我想尝试实现Zend_Acl_Resource_Interface
。我收到了错误
致命错误:界面 '应用程序\实体\接口Zend_Acl_Resource_Interface' 找不到 d:\项目\网站\ PHP \ ZendFram ework \ LearningZF \图书馆\应用\ \实体post.php中 在第8行
namespace Application\Entities;
use DoctrineExtensions\NestedSet\Node;
/**
* @Entity @Table(name="posts")
*/
class Post implements Node, Zend_Acl_Resource_Interface {
如果我尝试
class Post implements Node, \Zend_Acl_Resource_Interface {
致命错误:界面 'Zend_Acl_Resource_Interface'没有 在发现 D:\ Projects \ Websites \ php \ ZendFramework \ LearningZF \ library \ Application \ Entities \ Post.php on 第8行
答案 0 :(得分:2)
您使用的是the ZF 2.0 branch还是稳定的,例如1.10?您的自动加载器是否设置为使用ZF命名方案加载类?
您可以使用ZF开发人员用于将ZF转换为使用命名空间的转换工具:
答案 1 :(得分:0)
据我所知,Zend Framework不使用命名空间(直到2.x出现),因此它的类在全局命名空间中。试试class Post implements Node, \Zend_Acl_Resource_Interface {
答案 2 :(得分:0)
我将把它作为答案,所以如果没有人有任何其他答案,我可以将此qn标记为已回答,它实际上是我使用的解决方法。我不太确定为什么它完全正常工作,或者更确切地说Zend自动加载器失败的原因
我添加了require_once
以包含Zend_Acl_Resource_Interface
namespace Application\Entities;
use DoctrineExtensions\NestedSet\Node;
require_once "Zend/Acl/Resource/Interface.php";
/**
* @Entity @Table(name="posts")
*/
class Post implements Node, \Zend_Acl_Resource_Interface {
我认为更好的解决方法是@Gordon's answer中的转换工具。但我无法解决所有“不洁”转换所带来的错误。路径坏了。