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のインストールを行いました。 今回はとりあえず最初の一歩としてコントローラーとビューを使ってみたいと思います。 最終的な目標はすごい簡単で/cake/hello/にアク …

Windows10にChocolateyを使ってPHPをインストールする

Webの業界にはそれなりの年数いるのですが、PHPはお試しでCakePHPを少し触ったことぐらいしかなくプロダクション環境で構築したことはありませんでした。 それが、今回初めてPHPでアプリケーション …

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

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

no image

Windows7でXAMPPを使う <設定編>

前回、インストールを行ったので今回設定をしてみたいと思います。 前提条件として、外部には公開しないので、ガチガチに設定は行いませんが必要最低限の設定を行いたいと思います。 といっても、ほとんど設定する …

CakePHPでコントローラーの呼び出しURLを変更する

CakePHPでは基本的にURLとコントローラーは一致します。 例えば /users/index というURLの場合、呼び出されるコントローラーは UsersController が呼び出されます。 …