Object Pimcore不能包含类,但路径/文件已就位

Object Pimcore不能包含类,但路径/文件已就位,object,include-path,pimcore,Object,Include Path,Pimcore,当我试图在Pimcore CMS的前端列出对象时,我遇到了这个问题。类目录位于include\u路径中。php脚本的类位于website/var/Classes。但Zend给了我一个例外: 警告:include_once(Object/hotelAds/List.php):无法打开流:第145行的/var/www/html/pimcore/lib/Zend/Loader.php中没有这样的文件或目录 请告知为什么会发生这种情况。谢谢。像往常一样,我的问题太复杂了。所以让我自己来回答 Pimcor

当我试图在Pimcore CMS的前端列出对象时,我遇到了这个问题。类目录位于include\u路径中。php脚本的类位于website/var/Classes。但Zend给了我一个例外:

警告:include_once(Object/hotelAds/List.php):无法打开流:第145行的/var/www/html/pimcore/lib/Zend/Loader.php中没有这样的文件或目录


请告知为什么会发生这种情况。谢谢。

像往常一样,我的问题太复杂了。所以让我自己来回答

Pimcore有一个缺陷,需要纠正以避免混淆。 当您像我一样命名一个类(例如hotelAds)时,它就会被创建。但该类的目录将命名为HotelAds(/website/var/classes/Object/HotelAds/)(都是从大写字母开始的)。所以,当您尝试包含您命名的类以及后端中看到的类(!!)时,这是完全错误的,并且无法找到文件

当我通过“newobject\u HotelAds\u List()”(注意大写字母H)更正该问题时,该文件被包括在内,但我相信这不会解决问题。由于在后端,类名为“hotelAds”,因此如果打开类php文件,也会有“hotelAds”。所以这行不通

我想Pimcore可能会按照自己的意愿命名文件,但在解析类请求时,它必须在后端查找类名称


无论如何,当使用pimcore类时,必须在后端以大写字母开始命名类,这是它工作的唯一方法。在其他方面,你会损失48小时来找出问题所在。对于Pimcore开发人员,我建议至少在用小写字母命名类时发出警告。

请阅读OOP并遵循命名约定,类名应始终以大写字母开头,这就是OOP php框架使用首字母大写的ucfirst函数的原因。由于Zend是一个非常严格的类型框架,因此它使您能够学习良好的编程实践。

hmm。。。与其说是答案,不如说是评论?类名应该以大写字母开头