標準の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』以外のプライマリキーのカラム名を使用する方法
スポンサーリンク





