테스트 사이트 - 개발 중인 베타 버전입니다

index.php [라우팅 메인 파일]

· 4년 전 · 1851 · 6

기본적인 틀을 잡고, 테스트 해본 파일입니다.

전체 소스는 문서 작업을 추가하여, 그누보드 플러그인에 추가할 예정입니다.

역시 그누보드 소스는 만만하지 않군요. 

 

[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개

테스트 주소는
https://api_demo.solgnu.com/api/test
https://api_demo.solgnu.com/api/test/12345
입니다.

아직 문서 작업을 안했는데, 진행되는대로 공유하겠습니다.
data 안의 응답 포맷이라도 @볼피드 님하고 같게 했으면 좋을 것 같습니다. 제가 빨리 Doc을 만들어야 되는데, 쓸데 없는 것을 하다 보니, 늦어지네요
@마젠토 개취에요. 개취.^^
안녕하세요. github에 올리신 gnubaord_api를 기존 그누보드5와 연동해보고 싶은데요.
설치방법을 잘 몰라서요.
그냥 api 폴더를 gnuboard5.4.4.6 폴더안에 넣고, 위 게시물을 참고해서 db나 테이블 연동을 하면 되나요?
설치하는 방법을 몰라서요. 문서나 정보가 있다면 링크 부탁드립니다.
감사합니다.
@태스트 주말에 기본적으로 사용가능한(회원가입/로그인/게시판 조회 정도) 기능을 플러그인형태로 배포할 예정입니다. sir 그누보드 플러그인에서 다운받을수 있을거에요.
@솔그루 님 감사합니다. 한번 꼭 써보고 싶었는데... 주말에 글 올라오는거 기다리고 있어야 겠네요. 즐건 하루 되세요.

게시글 목록

번호 제목
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