二度忘れた事を三度忘れないようにする

しがないフリーランスIT系エンジニア

PhalconのRoutingとViewの関係

独自にルーティングを定義する際に、公式docを参考(なので大部分を割愛)に以下のように定義しました。

<?php

use Phalcon\Mvc\Router;

$router = new Router(false);

$router->add( "/", [
"namespace"  => 'Appname\Controllers',
"controller" => "index",
"action"     => "route"
]);

return $router;

ここで「IndexController.php」の「routeAction」が参照する末端のViewは「app/views/index/route.volt」です。
しかしながら、上記ルーティングの「"controller" => "index",」で指定している「index」を「Index」(頭文字を大文字)とすると、参照しにいくViewは「app/views/Index/route.volt」となりました。
実行されるコントローラは大文字小文字関係なく「IndexController.php」が実行されるが、参照しにいくViewはルーティング時の文字列に影響する模様。「"action" => "route"」は大文字小文字区別されるのでちょっと注意が必要。

これはPHPのクラス名は大文字小文字の区別しなくても動作する仕様からくるものだと思われる。