기본적인 틀을 잡고, 테스트 해본 파일입니다.
전체 소스는 문서 작업을 추가하여, 그누보드 플러그인에 추가할 예정입니다.
역시 그누보드 소스는 만만하지 않군요.
[code]
<?php
include_once __DIR__."/autoload.php";
include("_common.php");
//use SimpleDB;
//use Router;
include_once __DIR__."/Router.php";
$pdo_db = new PDO("mysql:host=".G5_MYSQL_HOST.";dbname=".G5_MYSQL_DB, G5_MYSQL_USER, G5_MYSQL_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"));
$pdo_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo_db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) {
$pdo_db->exec("SET SESSION sql_mode = ''");
}
if (defined('G5_TIMEZONE')) {
$pdo_db->exec(" set time_zone = '".G5_TIMEZONE."'");
}
$db = new SimpleDB($pdo_db);
$router_config = [];
$router_config['pdo_db'] = $pdo_db;
$router_config['db'] = $db;
$router_config['ROOT_PATH'] = G5_PATH;
$router_config['g5_config'] = $config; //기존 그누보드 글로벌 설정값
$router_config['is_login'] = $_SESSION['ss_mb_id'] ? true : false; //사용자 로그인 여부
$router_config['login_mb_id'] = $_SESSION['ss_mb_id']; //사용자 로그인 아이디
ini_set('display_errors', 1);
$router = new Router($router_config);
$router->setBasePath("/api");
// Custom 404 Handler
$router->set404(function () use ($router) {
return $router->withJson(['message' => '404 Not Found'], 404);
});
$router->get("/hello", function() {
echo "hello";
});
$router->mount('/test', function () use ($router, $db) {
$controller = new HelloController($router);
$router->get('/', function () {
echo json_encode([
'message' =>'OK',
'data' => 'test'
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
});
$router->get('/(\d+)', function ($id) use ($router, $controller) {
$data = $controller->test3($id);
return $router->withJson(['message' => 'OK', 'status' => 200, 'data' => $data], 200);
});
$router->get('/([a-zA-Z]+)', function ($id) use ($router, $controller) {
$data = $controller->test4($id);
return $router->withJson(['message' => 'OK', 'status' => 200, 'data' => $data], 200);
});
});
$router->mount('/member', function () use ($router, $db) {
$controller = new MemberController($router);
$router->post('/login', function () use ($controller) {
$mb_id = filter_input(INPUT_POST, 'mb_id', FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => '/[A-Za-z0-9_\-]+/')));
$mb_password = filter_input(INPUT_POST, 'mb_password');
return $controller->login($mb_id, $mb_password);
});
$router->post('/logout', function () use ($controller) {
return $controller->logout();
});
});
$router->run();
[/code]
댓글 6개
게시글 목록
| 번호 | 제목 |
|---|---|
| 161 | |
| 160 | |
| 150 | |
| 149 | |
| 141 | |
| 139 | |
| 138 | |
| 132 | |
| 127 | |
| 123 | |
| 117 | |
| 116 | |
| 114 | |
| 111 | |
| 109 | |
| 103 | |
| 101 | |
| 99 | |
| 93 | |
| 90 | |
| 84 | |
| 79 | |
| 66 | |
| 48 | |
| 47 | |
| 43 | |
| 37 | |
| 36 | |
| 34 | |
| 33 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기