1
我想知道如果这是一个好主意,在模型的PHP文件中注册一个Model类作为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文件。 - 从Document.php
befoe
底部不会有第二次调用ClassRegistery::init('Document')
第一个调用已完成?
这会以某种方式在CakePHP中注册注册表吗?
谢谢,但如果我把它放在构造中,那么我会从执行:: init()调用中调用:: init()。你明白吗?这就是为什么我想知道这是否是一个问题。 – cgTag 2013-02-15 18:24:15
如果您传递'$ this'而不是使用类注册表来重新初始化它,则不适用。 – jeremyharris 2013-02-15 18:50:08