【发布时间】:2011-10-06 23:28:08
【问题描述】:
我想在我的 Slim 应用程序中添加一个函数,但我对 PHP 不够熟悉,不知道构建这样的东西的最佳方法。这不是生产就绪代码,我显然不会将我的用户名和密码硬编码到脚本中。我这样做只是为了说明这个概念。
$options = array(
'username' => 'admin',
'password' => 'password'
);
$app = new Slim(array(
'view' => new TwigView()
));
$app->config($ptions);
function authenticate($app, $username, $password) {
if($username==$app->config('username') && $password==$app->config('password')){
return true;
} else {
return false;
}
}
$app->get('/', function () use ($app) { // ... }
// ... other routes
$app->post('/login', function() use ($app) {
$username = $app->request()->post('username');
$password = $app->request()->post('password');
if(authenticate($app, $username,$password)) {
$app->redirect('/');
}
$app->redirect('/login');
});
$app->run();
必须将$app 传递给authenticate() 是否有意义,还是有更好的方法? authenticate() 不是中间件,而是在 POST 路由中调用的函数,用于在登录表单上按下提交。
【问题讨论】:
-
很难说,因为它在您实际调用
authenticate的位置不可见。从它显示的内容来看,它为什么会出错?还有什么比工作更好的呢? -
我添加了调用它的位置。我问是因为我通常不会看到像这样传递的“全局”或“主要”对象。