2012-11-12 45 views
2

我已經搜索了類\Phalcon\Mvc\Controller & \Phalcon\DI\Injectable,但無法理解filter屬性來自哪裏。

如果控制器中我使用

$this->filter 

它從何而來?這些接口在任何地方都不反映這個屬性。

感謝

相關(https://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from)這是不幸因關閉原來的海報的英語。

+0

http://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from 同樣的問題,但我的問題...... – netstu

+0

是的,我抄了一遍,並提供自您的問題被鎖定後的答案。我認爲這將是一個很好的答覆,讓人們知道。 –

回答

2

在Phalcon依賴注入(\Phalcon\DI)容器中,服務被註冊並相互交互。

\Phalcon\Mvc\Controller自動允許使用魔術方法訪問註冊在DI容器中的服務。

所以,想象一下你在你的DI容器中註冊一個filter服務:

$di->set(
    'filter', 
    function() 
    { 
     return new \Phalcon\Filter(); 
    } 
} 

該服務現已在您的控制器具有以下方式獲得:

$filter = $this->filter; 

$filter = \Phalcon\DI::getDefault()->get('filter'); 

對於存儲在DI容器中的任何內容也是如此。

相關問題