2023.06.29
【Phalcon】ルーティングの基本

はじめに

今回は基本的なルーティング(ブラウザに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ファイルとアクションを準備します。

■Viewファイルの作成

以下の場所にtest.phtmlを作成してください。

/app/views/index/test.phtml

Viewファイルは表示されたことが分かれば何でもいいので、こんな感じで書いておきます。

<h1>ルーティングの練習!!</h1>

<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ファイルが表示されるはずです。