我现在只是在抨击 Phalcon,试图弄清楚它,因为我正在考虑将一个大项目从 CodeIgniter 移植到 Phalcon 或其他框架,然后再继续开发。
我正在使用路由器尝试捕获 404 错误,但这并没有按预期工作。它自己的路由器似乎正在工作,因为$router->add("/"
如果未定义 index.php,我还必须获取站点索引控制器,如果我将其注释掉,回家/然后抛出 404!但是,输入一些不存在的控制器名称,例如 test,会给我错误“PhalconException:无法加载 TestController 处理程序类”。我的 htaccess 是按照 Phalcon 文档教程。
在引导程序(index.php)中我有;
$di->set('router', function() {
require __DIR__ . '/../app/config/routes.php';
return $router;
});
我的 routes.php 看起来像这样;
$router = new \Phalcon\Mvc\Router();
// default
$router->add("/", array(
'controller' => 'index',
'action' => 'index'
));
//Set 404 paths
$router->notFound(array(
"controller" => "group",
"action" => "index"
));
$router->handle();
return $router;
该站点具有通过 domain.com/group-name/ 访问的用户提交的组。在 CI 中,我使用 404 路由加载组控制器,该控制器将激活对该组的搜索。如果找到,它将显示该组,如果没有,它将抛出一个带有 404 标题的 404 页面。很可能在 Phalcon 中有更好的方法来做到这一点,但我至少很想知道为什么我的 notFound 溃败无法正常工作;)
编辑:不确定这是否会改变任何东西,但我正在使用所有主控制器都在扩展的基本控制器“controllerBase”。它只包含一些变量和一个初始化函数以及另一个可以从控制器调用的函数。我不会认为这会影响 notFound 路由,但我认为我最好以任何方式提及它。