1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/man0sions-Router

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Простой PHP-роутер

Установка

composer require man0sions/router

Запуск демо

1: git clone https://git.oschina.net/man0sions/Router.git
2: php -S 127.0.0.1:8080 public/index.php
3: В браузере перейдите по адресу: http://localhost:8080/home

Использование

1. Простое использование

$router = \LuciferP\Router\Base\RouterFactory::getRouter();

/**
 * 1: Простое использование
 * $res->status() устанавливает код ответа [по умолчанию 200] 200,404,500 ...
 * $res->type()  устанавливает тип ответа [по умолчанию text/html] text/json...
 * $res->json()  выводит json на страницу
 * $res->jsonp()  выводит jsonp на страницу
 * $res->render() рендерит данные в указанную страницу
 */

$router->get('/home', function ($req, $res) {
//  $res->status(200)->send(json_encode($req));
//  $res->type('text/json')->send(json_encode($req));
//  $res->json(['hello'=>'world']);
//  $res->jsonp(['hello'=>'world']);
//  $res->redirect("http://baidu.com");
    $res->status(200)->type('text/html')->render(BASE_PATH . "/../views/view.php", ['name' => 'zhangsan', 'age' => 20]);
});

$router->run();

1.1 Анализ параметров

/**
* 1.1: get параметры
*/

$router->get('/hello/:name', function ($req, $res) {
    $query = $req['get'];
    $res->json($query);
});

/**
* 1.2 post параметры
*/

$router->post('/hello', function ($req, $res) {
    $query = $req['post'];
    $res->json($query);
});

### 2. Расширенное использование

2.1 Аутентификация

  • Пользователи и пароли по умолчанию: admin,admin
$router->auth("/auth", function ($req, $res) {
    $name = @$req['server']['PHP_AUTH_USER'];
    $passwd = @$req['server']['PHP_AUTH_PW'];

    if (!($name == 'admin' && $passwd == 'admin')) {
        header('WWW-Authenticate: Basic realm="My Realm"');
        header('HTTP/1.0 401 Unauthorized');
        exit;
    } else {
        $res->send("Добро пожаловать обратно");

    }

});
/**
* 2.2 Форматирование response
* html---\LuciferP\Router\ResponseData\HtmlData
* json---\LuciferP\Router\ResponseData\JsonData
* xml----\LuciferP\Router\ResponseData\XmlData
*/
$router->get('/name/:name/age/:age', function ($req, $res) {
    $query = $req['get'];
    $xml = $res->dataformat(new \LuciferP\Router\ResponseData\XmlData($query));
    $res->type("text/xml")->send($xml);
});


/**
* 2.3 Указание всех [get,post] запросов "/"
*/
$router->all("/", function ($req, $res) {
    $res->send("all page");
});

3. Контроллер

/**
* 3.1 : Только рендеринг HTML с layout
*/
$router->get('/home/index', '\LuciferP\Router\Controller\Home@index');

/**
* 3.2 : Вызов response для рендеринга данных
*/
$router->get('/home/index2', '\LuciferP\Router\Controller\Home@index2');

/**
* 3.3 : Передача HTML с layout в response для возврата
*/
$router->get('/home/index3', '\LuciferP\Router\Controller\Home@index3');

4. Не забудьте добавить $router->run() в конце

$router->run();

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Простой и элегантный PHP-роутер. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/man0sions-Router.git
git@api.gitlife.ru:oschina-mirror/man0sions-Router.git
oschina-mirror
man0sions-Router
man0sions-Router
master