我想知道在模型的 PHP 文件中将模型类注册为 CakeEventListener 是否是个好主意。
例如,如果我创建了一个名为 Document 的模型来实现侦听器,并在 Document.php 的底部将其注册为侦听器。
class Document extends AppModel implements CakeEventListener
{
.....
}
CakeEventManager::instance()->attach(ClassRegistery::init('Document'));
我的问题是关于 nexted 调用ClassRegistery::init('Document')
以及上述是否会导致Document
创建两个实例。
例如,假设我的控制器中有以下内容。
class DocumentsController extends AppController
{
public function index()
{
$model = ClassRegistery::init('Document');
.....
Document
实例化了多少次?
- 来自控制器的第一次调用
ClassRegistery::init('Document')
加载 Document.php 文件。 - 是否会
ClassRegistery::init('Document')
从 Document.php 的底部进行第二次调用,befoe
第一次调用已完成?
这会以某种方式在 CakePHP 中散布注册表吗?