参考にさせて頂いたページ
「2. コントローラーを使おう!」を見ながらやってみる
コントローラーファイルの命名規則
app/Controller/SampleController.php
をまず作成する。
コントローラーのファイル名は「アッパーキャメルケース」
cakephpを使用して作るwebアプリのURL
URLは以下のようになる
http://ドメイン/CakePHPのディレクトリ/アプリケーション/アクション
とのこと
SampleController.phpにindexアクションを記述してページを見てみる
SampleController.phpに記述したソースコードは、参考サイトに倣って以下のとおり
<?php
App::uses('AppController', 'Controller');
class SampleController extends AppController {
public function index() {
$this -> autoRender = false;
echo "<html><head></head><body>";
echo "<h1>サンプルページ</h1>";
echo "<p>これがサンプルのページです。</p>";
echo "</body></html>";
}
}
とした。
そして以下のURLにアクセスするとページが確認できる。
http://192.168.33.10/cakephp/sample/index
ここまでの実装に関する解説
まず //App::uses( クラス名 , パッケージ名 ); App::uses('AppController', 'Controller');
これは、SampleController.php内で使用する"Controllerパッケージにある「AppController」というクラス"を読み込む記述。
次の
//class コントローラー名 extends AppController {
class SampleController extends AppController {
これは"AppControllerを継承して、SampleControllerを作成する"という記述。
次に
//public function アクション名() {
public function index() {
これはURLの末尾がindexだったときに実行するアクションを作成している記述。
このとき、自分の環境では
http://192.168.33.10/cakephp/sample/index
にアクセスする事でページが表示される。
http://192.168.33.10/cakephp/コントローラー名(でなおかつファイル名)/アクション名
と言い換える事ができる。
次に
$this -> autoRender = false;
の部分はviewを使用しないという設定をしている。
$this
はこのクラスのインスタンス。
例えばSampleHogeController.phpを作ってみる
二つの単語を合わせたコントローラー名の場合はURLはどうなるのか?という事の検証。
まず、SampleHogeController.phpを作成した。
次に中は
<?php
App::uses('AppController', 'Controller');
class SampleHogeController extends AppController {
public function index() {
$this -> autoRender = false;
echo "<html><head></head><body>";
echo "<h1>サンプルページ</h1>";
echo "<p>これがサンプルのページです。</p>";
echo "</body></html>";
}
}
とした。
さっきも書いたけど、ファイル名とクラス名は同じでSampleHogeController
です。
これにアクセスできるURLは
http://192.168.33.10/cakephp/samplehoge/index
http://192.168.33.10/cakephp/sample_hoge/index
みたい。