今回は基本的なルーティング(ブラウザにURLを打ち込んでからViewを表示させるまで)
についてまとめます。
公式ページを見ても正常に動かすのに苦戦したので、
ここにまとめておこうと思います。
この記事ではPhalconを学び始めたばかりの方を想定しており、
以下ではもっともシンプルなルーティングについて説明します。
Windows11
WSL(Ubuntu20.04)
php:v7.4.33
phalcon:4.0.6
Phalcon DevTools:v4.2.0
Phalconの公式ページ
https://docs.phalcon.io/4.0/ja-jp/routing#defining-routes
新規プロジェクトの作成直後の状態から、コーディングを始めていきます。
はじめに、準備としてViewファイルとアクションを準備します。
■Viewファイルの作成
以下の場所にtest.phtmlを作成してください。
/app/views/index/test.phtml
Viewファイルは表示されたことが分かれば何でもいいので、こんな感じで書いておきます。
<p>/app/views/index/test.phtmlです!</p>
■アクションの準備
次に既存のindexコントローラに2行追記してアクションを追加します。
対象ファイル:/app/controllers/IndexController.php
コード)
<?php
declare(strict_types=1);
class IndexController extends ControllerBase{
public function indexAction(){
// return ‘<h1>Hello,world!</h1>’;
}
public function testAction(){ //追記
} //追記
}
これで準備ができました!
と、ここで、、、まだ何もルーティングのコードを書いていませんが、
現状のままコマンドプロンプトに「phalcon serve」コマンドを打ち込みWebサーバーを起動し、
localhost:8000/index/testにアクセスしてみてください。
先ほど作成したtest.phtmlが表示されるはずです。
これは、phalconのデフォルトの設定で、
URLに対するルーティングを設定していない場合
localhost:8000/[コントローラ名]/[アクション名]
というようにURLを解釈してアクションを実行し、
View/[コントローラ名]/[アクション名].phtml
のViewファイルを表示します。
今回の場合
localhost:8000/index/test ⇒IndexControllerのtestAction()を実行
View/index/test.phtmlを表示する
といような流れになっています。
デフォルトの設定が分かったところで、
次からは基本のルーティングの書き方を見ていきます。
URL⇒コントローラのアクションとの紐づけは以下のファイルに記述します。
/app/config/router.php
書き方はこうです。
$router->add([URL], [
“controller” => [コントローラ名],
“action” => [アクション名],
])
試しにこのように書いてみてください。(以下のコード以外は不要ですので削除てください。)
<?php
$router = $di->getRouter();
$router->add(“/test/test/index”,[
“controller” => “index”,
“action” => “test”,
]);
$router->handle($_SERVER[‘REQUEST_URI’]);
そしてブラウザにlocalhost:8000/test/test/indexと打ち込むとViewファイルが表示されるはずです。