.ini格式的{Fat Free Framework 3.5条件路由

时间:2015-10-13 15:51:00

标签: php fat-free-framework

我已经使用以下几个条目定义了我的routes.ini文件:

[routes]

GET /=PublicController->home
GET /login=PublicController->login
GET /logout=PublicController->logout
POST /auth=PublicController->auth
[...]

我想知道是否可以动态修改路线,这取决于任意条件来检查,例如:会话变量等等。

有没有办法做类似的事情:

if ($f3->get('SESSION.user.level') == 'admin') {
    GET /=AdminController->home
} else {
    GET /=UserController->home
}
<。>在.ini文件中?

2 个答案:

答案 0 :(得分:2)

我一直在使用稍微不同的方法,并且认为我也会分享它。

在我的主index.php文件中,我查找url组件,并根据该

加载路由(并重载其他配置设置)
if(explode('/',$_SERVER['REQUEST_URI'])[1] === "admin"){
    $f3->config('../f3/app/config/config.admin.ini');
    $f3->config('../f3/app/config/routes.admin.ini');
}

我使用它而不是Session,因为路由器中使用的控制器可以处理重定向到登录页面。您也可以继续使用我喜欢的ini文件中的路由。

答案 1 :(得分:1)

没有。 但令人惊讶的是你可以使用php:

if ($f3->get('SESSION.user.level') == 'admin') {
    $f3->route('GET /','AdminController->home');
    $f3->config('admin.ini');
} else {
    $f3->route('GET /','UserController->home');
}