標準のHelperを拡張してカスタマイズする方法 CakePHP2
CakePHP2
CakePHP3、CakePHP4ではAppView::loadHelper()でHelperを指定します。
CakePHP5ではAppView::loadHelper()がAppView::addHelper()に変更されています。
[参考記事] CakePHP3、CakePHP4の場合
app/Controller/AppController.phpの$helpersプロパティに次のように書くとViewでHelperを呼び出すことができます。
public $helpers = array( '【Viewでのプロパティ名】' => array( 'className' => '【呼び出されるクラス名】', ), );
標準のHelper(組み込みヘルパー/コアヘルパー)を別のクラスを使用するよう指定できます。
public $helpers = array( 'Form' => array( 'className' => 'CustomForm', ), );
独自のHelperはsrc/View/Helper配下に配置します。
例
app/Controller/AppController.php
class AppController extends Controller { …… /** * ヘルパーの呼び出し設定 * * @var array */ public $helpers = array( 'Flash' => array( 'className' => 'CustomFlash', ), 'Form' => array( 'className' => 'CustomForm', ), 'Html' => array( 'className' => 'CustomHtml', ), 'Paginator' => array( 'className' => 'CustomPaginator', ), ); …… }
app/View/Helper/CustomFlashHelper.php
<?php App::uses('FlashHelper', 'View/Helper'); /** * FlashHelperの拡張ヘルパー * * @link http://book.cakephp.org/2/ja/core-libraries/helpers/flash.html */ class CustomFlashHelper extends FlashHelper { }
app/View/Helper/CustomFormHelper.php
<?php App::uses('FormHelper', 'View/Helper'); /** * FormHelperの拡張ヘルパー * * @property HtmlHelper $Html * @link http://book.cakephp.org/2/ja/core-libraries/helpers/form.html */ class CustomFormHelper extends FormHelper { }
app/View/Helper/CustomHtmlHelper.php
<?php App::uses('HtmlHelper', 'View/Helper'); /** * HtmlHelperの拡張ヘルパー * * @link http://book.cakephp.org/2/ja/core-libraries/helpers/html.html */ class CustomHtmlHelper extends HtmlHelper { }
app/View/Helper/CustomPaginatorHelper.php
<?php App::uses('PaginatorHelper', 'View/Helper'); /** * PaginatorHelperの拡張ヘルパー * * @property HtmlHelper $Html * @link https://book.cakephp.org/2/ja/core-libraries/helpers/paginator.html */ class CustomPaginatorHelper extends PaginatorHelper { }
関連記事
- テンプレート(template)側でログイン情報を取得する方法
- 国際化i18n(多言語化)
- CakePHP2系の入手方法・インストール方法
- PostgreSQLでERROR: duplicate key value violates unique constraint "hoge_pkey" DETAIL: Key (id)=(10) already exists.と出る場合
- PostgreSQLで自動採番をするシーケンス(sequence)とは【AUTO INCREMENT】
- CakePHPのバージョンごとのシステム要件
- AuthコンポーネントのパスワードをCakePHPを使用せずハッシュ化する方法(パスワードの生成ルール)
- CakePHP
- CakePHP
- URLをハイフン区切りからアンダーバー区切りやキャメルケースにする方法
- コーディング規約のチェックを行う・整形する標準ツール(PHP CodeSniffer)の使い方
- [CakePHPのバグ]キャッシュ処理でunserializeエラーが発生する
- PHP Strict Standards: Non-static method と出る場合の対処法
- セキュリティレベルの設定
- 複数のデータベースを切り替える方法(別データベースを使用する)
- CakePHP1系(CakePHP1.3)の入手方法・インストール方法
- TOPページはIndexControllerではない Cannot redeclare config()
- Composerコマンドでウクライナへのメッセージが表示されたことがあります
- デバッグレベルを設定
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- フォームの必須エラーメッセージをHTML5標準にする方法、カスタマイズする方法
- [CakePHPのバグ]キャッシュ処理でunlinkエラーが発生する
- CakePHPのDB接続情報設定
- CakePHP3系の入手方法・インストール方法
- CakePHPでカラムを比較してSELECTする方法
- CakePHP4系の入手方法・インストール方法
- キャッシュを有効にする
- CakePHPのエラーテンプレートの一覧
- Composerをインストールする方法と使い方
- ファイル読み込みPATHを設定
- 『id』以外のプライマリキーのカラム名を使用する方法
スポンサーリンク