2

\Phalcon\Mvc\Controllerクラス&を検索しましたが、属性が\Phalcon\DI\Injectableどこから来ているのかわかりません。filter

コントローラ内の場合、私は使用します

$this->filter

それはどこから来たのですか?インターフェイスはこの属性をどこにも反映しません。

ありがとう

元のポスターの英語のために残念ながら閉鎖された( https://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from )に関連しています。

4

1 に答える 1

2

Phalcon Dependency Injection(\Phalcon\DI)コンテナでは、サービスが登録され、相互に作用します。

マジックメソッドを使用して、DIコンテナに登録されているサービスへの\Phalcon\Mvc\Controllerアクセスを自動的に許可します。

したがってfilter、DIコンテナにサービスを登録したと想像してください。

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

このサービスは、次の方法でコントローラーで使用できるようになりました。

$filter = $this->filter;

また

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

DIコンテナに保存されているものについても同じことが言えます。

于 2012-11-12T21:55:57.530 に答える