在CakePHP 2.x中我有静态类:
\app\Lib\Util\MyStaticClass1.php
\app\Lib\Util\MyStaticClass2.php
然后在app\Config\bootstrap.php
文件中添加了这些行。
App::uses('MyStaticClass1', 'Lib/Util');
App::uses('MyStaticClass2', 'Lib/Util');
所以我没有在每个控制器,组件,帮助器或ctp文件中包含这些类。
如何在CakePHP 3中执行此操作?我试过这个:
我将这些文件复制到
\src\Util\MyStaticClass1.php
\src\Util\MyStaticClass2.php
然后在每个控制器,组件,帮助器和ctp文件中添加了这个:
use App\Util\MyStaticClass1;
use App\Util\MyStaticClass2;
这很有效。但是有更简单的方法来包含这些文件吗?
答案 0 :(得分:1)
但是有更简单的方法来包含这些文件吗?
我不这么认为命名空间的工作原理。您可以将静态方法类包装在traits中。例如,请参阅核心的EventManagerTrait。
我在每个控制器,组件,帮助器
中都有静态类(...)
这是糟糕练习并引入了紧密耦合。我认为如果您在各处广泛使用它们,您的应用程序架构需要进行认真的改革。