【发布时间】:2014-01-28 00:50:18
【问题描述】:
我正在使用 CakePHP 2.4.5 和 PHP 5.5,并希望使用 trait。
我在 Utility/VariablesTrait.php 中有一个名为 VariablesTrait 的特征。
为了利用命名空间,我给它一个命名空间App\Utility\VariablesTrait,因为Utility\VariablesTrait 似乎有点过于全球化,而前者在CakePHP 3 中会更好地工作。
在我想使用它的班级中,我在班级中有use App\Utility\VariablesTrait; 语句。对于备份,我还在文件顶部有一个App::uses('VariablesTrait', 'Utility'); 语句。我不确定在寻找特征时是否使用了 SPL 自动加载器,这就是我首先要寻找命名空间的原因。
小问题是应用程序目录是app,由于目录结构应该匹配命名空间(我认为),我将其重命名为App。但是,CakeRequest::_base() 硬编码app,因此确定控制器并不能很好地工作。
所以,我正在尝试确定这是否是 CakePHP 错误,或者是否有更合适的方式在 CakePHP 2 中使用特征。
【问题讨论】:
标签: php cakephp namespaces traits