特定のアクションメソッドで一度だけ必要だったので、以下のように追加したくありません
(無駄にメモリをロードしないでください)
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Session');
var $components = array('Session', 'Email');
特定のアクションメソッドで一度だけ必要だったので、以下のように追加したくありません
(無駄にメモリをロードしないでください)
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Session');
var $components = array('Session', 'Email');
class UsersController extends AppController {
public function method_name() {
$this->helpers[] = 'MyHelper'
}
}
詳細については、ドキュメントを参照してください。
それが役立つことを願っています。
その場でヘルパーとコンポーネントを追加するためにコンポーネントを使用します。
$this->Common->addHelper('Tools.Datetime');
$this->Common->addHelper(array('Text', 'Number', ...));
$this->Common->addComponent('RequestHandler');
$this->Common->addLib(array('MarkupLib'=>array('type'=>'php'), ...));
等
これに対する完全なコードは、私が開いた Cakephp 拡張チケットで見ることができます: http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/1277
または PHP マークアップを使用: http://www.dereuromark.de/2010/11/10/loading-classes-on-the-fly/
また、mtnorthrop によって投稿されたソリューションの小さな問題も修正されています。プラグインと渡されたオプションが可能になりました。楽しむ。
を使用してヘルパーをロードできます
$this->helpers[] = 'MyHelper';
ロブが上で述べたように、これはコントローラーでは機能しません。コントローラーが機能するためには、初期化メソッドと起動メソッドを呼び出す必要があるためです。
コントローラーアクション内にコンポーネントをロードするためのコードを Web で見つけました: ComponentLoaderComponent
はい、これはコンポーネントですが、それほど大きくないため、コントローラに含めても問題ありません。
それか、それを調べてコンポーネントの読み込みがどのように機能するかを確認し、独自のコントローラー アクションを記述して同じことを行うことができます。