현재 Slim 튜토리얼을 따르고 있습니다. $app = Slim::getInstance();
Slim에 대해 잘 모르기 때문에 컨테이너를 사용하는 솔루션이 나에게 적합하지 않습니다. . 아래에 제공된 내 기능을 실제로 실행하려면 어떻게해야합니까? 나는이 점에서 로깅을위한 또 다른 함수 내에서이를 호출하고Slim 3에서 Slim :: getInstance()를 바꾸는 방법
function jsonResponse($data, $code = 200)
{
$app = Slim::getInstance();
$app->response->setStatus($code);
$app->response->headers->set(
'Content-type',
'application/json; charset=utf-8'
);
return $app->response->setBody(json_encode($data));
}
은 다음과 같습니다
이function login($request) {
$user = json_decode($request->getBody());
$username = $user->username;
$password = $user->password;
if (empty($username) || empty($password)) {
$error = 'Username and password are required';
// Bad request
return jsonResponse($error, 400);
}
$sql = "SELECT first_name, username FROM users "
. "WHERE username = '$username' AND password = '$password'";
$db = getConnection();
$row = array();
try {
$result = $db->query($sql);
if (!$result) {
$error = 'Invalid query: ' . mysql_error();
// Internal server error
return jsonResponse($error, 500);
}
$user = $result->fetchAll(PDO::FETCH_OBJ);
if (empty($user)) {
// Unauthorized
return jsonResponse($error, 401);
}
$row["user"] = $user;
$db = null;
} catch(PDOException $e) {
error_log('{"error":{"text":'. $e->getMessage() .'}}');
// $error = array('error' => array ('text' => $e->getMessage()));
// Internal server error
return jsonResponse($error, 500);
}
// OK, default is 200
return jsonResponse($row);
}
로그인 기능에 대한 나의 경로가 $app->post('/login_user', 'login');
TL이며, 박사 나에 대한 설명을 부탁합니다 getInstance()
을 사용하는 이전 Slim 코드를 변환하는 방법.
감사합니다.
슬림 3은 서비스 위치를 지원하지 않습니다. json 응답을 반환하고 싶다면 .... $ response-> withJson (); –
geggleto
또한 자습서는 Slim 2를 기반으로하는 것으로 보입니다. Slim :: getInstance()는 Slim 3에 존재하지 않습니다. – Wolf
Wolf 그래서 Slim 3으로 변환하는 방법을 묻는 것입니다. –