今回はCodeIgniter4のURI構成とルーティングについて解説していきます。
CodeIgniterにはURIから直接コントローラーを指定して実行する方法とルーティングによって、実行するコントローラーを指定する方法の2種類があります。
1.URIから直接コントローラーを指定して実行する
例として、プロジェクトフォルダ直下にindex.phpが配置されているexample.comというサイトの場合、CodeIgniter4のURL構成は次のようになります。
http://example.com/[コントローラークラス名]/[メソッド名]/[引数]
コントローラークラス名以降のメソッドや引数は省略することが可能で、その場合は入力されたコントローラークラスのindex関数へアクセスされます。
2.ルーティング
2-1.ルーティングとは
MVCモデルのフレームワークにおけるルーティングとはリクエスト時のURIに応じて、実行するコントローラおよびメソッドを決定することを指します。
2-2.ルーティングのメリット
ルーティングのメリットとして、セキュリティ対策の面と保守性の面があります。
セキュリティの面では、例えばURLにどのパスのどの言語のプログラムを実行しているかが分かってしまうと、悪用することが容易になってしまいます。
そのため、フレームワークではどのパスにどのプログラムがあるかが分からないように、設計されています。
その上でルーティングをさらに施すことによって、どのコントローラーを使用しているかが直接分からないという点でセキュリティの向上につながります。
次に保守性の面です。
また、ルーティングではリクエストメソッドによって実行するコントローラー、関数を指定することが可能です。そのため、リクエストメソッドによって関数を分割したり、想定外の挙動を防ぐことができます。
2-3.ルーティングによってコントローラーを指定して実行する
CodeIgniter4の場合、ルートフォルダ直下から見て¥app¥config¥に「Routes.php」ファイルがあり、このファイル上でルーティングの設定を行います。
デフォルトでは35行目あたりに下記の記載があり、その付近に設定するルーティングを記載していきます。
$routes->get('/', 'Home::index');
ルーティングは上から下に実行されるので、抽象度の低いルーティングほど下に書いた方がベターです。
ルーティングの記述方法は以下の通りになります。
$route->リクエストメソッド(‘ルーティングURI’, ‘コントローラー名::メソッド’)
リクエストメソッドの代表としては「get」「post」「put」「delete」などがあります。
その他にも引数をルーティングによって渡すことも可能ですし、各リクエストメソッドの代わりに「resource」を使用することでCodeIgniter4で決められた関数を実行することも可能です。
詳しくは下記の公式ドキュメントをご覧ください。
今回はここまでです。最後まで閲覧くださいましてありがとうございました。