PHP

CakePHPで独自のコントローラーを継承する方法

投稿日:2014/02/25 更新日:

CakePHPで独自に作ったコントローラーを継承する方法を調べました。
自分はJavaをよく使っていたというのは変かもしれませんがコントローラーの継承というのはそれほど違和感はないのですがCakePHPなどのフレームワークでコントローラーを継承するのはご法度なのですかね。その辺りはあんまり詳しくないので、あくまで独自のコントローラーを継承する方法です。

継承したいコントローラーの作成

app/Controller/BaseController.phpとして作成しました。

<?php
class BaseController extends AppController {
	function namae() {
		return "私はBaseControllerです。";
	}
}

動作確認ようにnamaeという文字列を返すメソッドを用意しました。

BaseControllerを継承した

なんでもいいのですが、HelloControllerというコントローラーがあるとしてこのコントローラーでBaseControllerを継承します。
その時に重要なのは継承したいコントローラーを予めインポートしておくことです。
またindexメソッドでparent::namaeとして親クラスのメソッドを呼び出してdebugメソッドを使って画面に表示しています。

App::uses('BaseController', 'Controller');
class HelloController extends BaseController {
	public function index() {
		debug(parent::namae());
	}
}

実行してみる

ブラウザでアクセスすると、
debug1
のように黄色い部分に親クラスで定義したnamaeメソッドの内容が表示されていることが確認できます。

結びに

今回はコントローラーでしたが、同じ要領でビューなど各種クラスを利用できそうです。
はCakePHPのドキュメントを読むと利用例が書いてありますので参照すると便利かと思います。
App クラス — CakePHP Cookbook 2.x ドキュメント

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

CakePHPでビューからコンポーネントを呼び出す方法

CakePHPで各ビューで特定の処理をコンポーネントでまとめて呼び出したい場合があると思います。 単純に考えるとビューにコンポーネントをセットすればよいと思いますが、ヘルパーからコンポーネントを呼び出 …

mixhostにPHP Deployerを使ってデプロイする

今年の夏に、このブログのホスティング環境をmixhostに切り替えました。 mixhostはComposerも使えるのでDeployerでデプロイに挑戦してみました。 Gitのインストール Deplo …

no image

Windows7でXAMPPを使う <インストール編>

Windows7を使う機会があったので、PHPを実行できるように環境を整えてみました。 環境 Windows7 Professional なんで、Windows8ではなくWindows7ということは聞 …

WindowsにLaravel 5.4をインストールする

どうもPHP初心者、Laravel初心者のものです。 今回の案件ではPHPのフレームワークにLaravelを使うことにしましたのでインストール手順をまとめたいと思います。 環境 ホストOS:Windo …

Laravelでテーブルの主キーに文字列型を使う場合のモデルの定義

ポストタイトルの通りなんですけどLaravelでテーブルの主キーに文字列型を使う場合ですがModel#findで検索すると結果は帰ってくるのですが主キー項目の値を表示されると0と表示されてしまいました …