1
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();
이 이해 하는가는 authenticate()
에 $app
을 통과해야하거나 더 나은 방법은 무엇입니까? authenticate()
은 미들웨어가 아니지만 로그인 양식에서 제출을 누르기위한 POST 경로에서 호출 된 함수입니다.
실제로 '인증'이라고하는 곳에서는 보이지 않기 때문에 말하기가 어렵습니다. 그것이 보여주는 것에서 왜 틀렸는가? 일하는 것보다 낫다. – hakre
어디서 호출했는지 추가했습니다. 나는 일반적으로 '글로벌'또는 '메인'객체가 그런 식으로 전달되는 것을 보지 않기 때문에 묻습니다. –