【发布时间】:2017-07-07 02:55:21
【问题描述】:
我想在我的 CakePhp 应用程序中创建和使用自定义异常类。
所以我创建了一个 DuplicateConfigurationException.php 具有以下类骨架:
<?php
namespace Cake\Exception;
class DuplicateConfigurationException extends Exception{
} ?>
我是一个控制器,我希望引发异常,我添加了
use Cake\Exception\DuplicateConfigurationException;
在我调用的函数中
throw new DuplicateConfigurationException();
根据整个互联网的建议,我尝试将 php 文件放在以下位置,但它们似乎都不起作用:
src/异常 src/异常 源/库 src/Lib/错误 src/Lib/错误/异常
我总是得到一个错误:
Error: Class 'Cake\Exception\DuplicateConfigurationException' not found
File /host/var/www/src/Controller/StructuresController.php
Line: 246
我还需要做什么才能让 Cake 识别我的自定义异常?
我很清楚Loading custom class in CakePHP3,但由于这个异常不是一个单独的库,我宁愿不把它放在供应商中?
【问题讨论】:
-
链接的问题与将东西放在
vendor文件夹中无关,这只是一个相当没有经验的 CakePHP/PHP 用户的评论(无意冒犯)。除了Library在某种程度上是保留名称的错误结论之外,问题还显示了它应该如何完成、命名空间应该是什么样子以及与命名空间匹配的文件夹路径 (PSR-4)。 -
我很抱歉地报告,这条评论不是很有帮助。链接的问题既没有显示结论性的解决方案(而是描述了一个不起作用的示例)。我认为将文件夹重命名为 Berry 不适合我的需要。它还给出了一个命名空间的例子,它似乎不能与给定的目录设置结合使用。然而,你把我引向了正确的方向,我终于能够解决它。
-
所以换句话说,它已经足够有用了。如前所述,结论是错误的,问题中的示例显示了一个完全有效的 PSR-4 样式命名空间/文件夹设置,
App\Library\Config匹配src/Library/Config.php很好,它与您的方案相同。
标签: php class exception directory cakephp-3.0