扩展类异常时出现PHP“找不到类”错误
Posted
技术标签:
【中文标题】扩展类异常时出现PHP“找不到类”错误【英文标题】:PHP "Class not found" error when extending class Exception 【发布时间】:2015-07-11 06:59:10 【问题描述】:我收到一个包含以下消息的页面:
致命错误:在第 29 行的 /home/mysite/public_html/lib/Varien/Exception.php 中找不到类“异常”
这是产生错误的行:
class Varien_Exception extends Exception
更改调用全局命名空间 (\Exception) 的行没有帮助,我仍然收到相同的消息。此外,我没有收到有关异常类丢失文件的自动加载器警告,例如使用 extends Exception22
时会收到警告。
在将 magento 1.3 CE 安装迁移到新服务器后,该错误开始出现。每当我尝试打开 Magento Connect 管理器时,我都会得到它。 错误页面 url 如下所示:http://[MYSITE.COM]/index.php/admin/extensions_local/index/key/[SOMEID]/
我使用的是 PHP 5.4.39,我可以在其他 PHP 文件中扩展和使用 Exception。
【问题讨论】:
Magento Connect Manager 依赖于 PEAR。如果您只是更改了服务器,或者您尝试从 Magento CE 1.3 升级,我不确定您的描述。无论哪种情况,请查看 PEAR 安装及其对新服务器的依赖关系。 @greg_robbins,我刚换了一个新服务器,没有尝试升级。将检查 PEAR 文件。 【参考方案1】:不要认为这是一个 PEAR 问题,对我来说这看起来像是与 Autoloader 相关的问题,通常与文件系统权限有关。
您可以使用 xdebug 和支持 dgbp 的编辑器/调试器来单步执行代码并查看实际发生的情况。
首先,我会检查您的 Magento 文件夹,以确保您的 PHP 实际上可以访问 Magento “lib/”、“var/cache/”和“app/”文件夹中的所有文件。
然后,排除琐碎的文件系统权限问题,您可以使用 xdebug(以及 emacs 或 NetBeans,如果您愿意),最终在 class 关键字之前使用“xdebug_break()”作为该类文件中的第一条指令。
【讨论】:
以上是关于扩展类异常时出现PHP“找不到类”错误的主要内容,如果未能解决你的问题,请参考以下文章
Android MapBox 充气错误。找不到类 MapView
xampp和PHP致命错误:未捕获错误:找不到类'DOMDocument'
更改命名空间时在 Laravel 中找不到类“\App\User”
Tomcat & Spring Web - 找不到类异常 org.springframework.web.context.ContextLoaderListener