すべてのアクションの前に (つまり、preExecute アクションで) app/lib ディレクトリに格納されているクラスにある関数を呼び出す必要があります。
$this
その関数では、アクションからのポインターが必要です。
静的な方法で実行できますが、Classname::functionname()
回避したい PHP 警告が表示されます。
今のところ、私はそれを処理します
ini_set('display_errors', '0'); # don't show any errors...
error_reporting(E_ALL | E_STRICT); # ...but do log them
しかし、それは醜い方法です..
どうすれば動的な方法でそれを行うことができますか?
===============
編集:
$this
要求に応じて - そのポインターで実際に何をしているかを示すコードを追加します
...
$c = new Criteria();
$c->add(ArticlePeer::PUBLISHED, true);
$articles = ArticlePeer::doSelect($c);
$this->articles = $articles;
...
はい、この Select in preExecute アクションをすべてのモジュールに配置でき、正常に動作することはわかっています。ただし、私には多くのモジュールがあり、それらすべてのモジュールですべて同じアクションのセットがあるため、それらを 1 つの手順に入れてその関数を呼び出すだけが最も賢明な方法です...特にメンテナンスに関してはアプリ - コードを変更する場所は 1 か所だけで済みます。