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

OSCHINA-MIRROR/jwj666-think-jump

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

Расширение ThinkPHP 6.1 для перенаправления

Начиная с версии ThinkPHP 6.0, класс Jump был удалён из ядра. Этот класс содержал методы success, error, redirect и result, которые широко использовались в проекте. Эти методы были перенесены в расширение для использования.

Установка

composer require big-dream/think-jump:3.*

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

  • Jump::success($msg, $url, $wait, $header, $data)
// Вывести сообщение об успешной операции и вернуться на предыдущую страницу
\bigDream\thinkJump\Jump::success('Операция прошла успешно!');

// Вывести сообщение об успешной операции и перейти на страницу Index/index
\bigDream\thinkDream\Jump::success('Операция прошла успешно!', 'Index/index');

// Вывести сообщение об успешной операции, подождать 15 секунд и перейти на страницу Index/index
\bigDream\thinkDream\Jump::success('Операция прошла успешно!', 'Index/index', 15);

// Вывести сообщение об успешной операции, подождать 15 секунд, перейти на страницу Index/index и добавить заголовок auth-token со значением abcd学英语
\bigDream\thinkDream\Jump::success('Операция прошла успешно!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
  • Jump::error($msg, $url, $wait, $header, $data)
// Вывести сообщение о неудачной операции и вернуться на предыдущую страницу
\bigDream\thinkJump\Jump::error('Операция не удалась!');

// Вывести сообщение о неудачной операции и перейти на страницу Index/index
\bigDream\thinkDream\Jump::error('Операция не удалась!', 'Index/index');

// Вывести сообщение о неудачной операции, подождать 15 секунд и перейти на страницу Index/index
\bigDream\thinkDream\Jump::error('Операция не удалась!', 'Index/index', 15);

// Вывести сообщение о неудачной операции, подождать 15 секунд, перейти на страницу Index/index и добавить заголовок auth-token со значением abcd学英语
\bigDream\thinkDream\Jump::error('Операция не удалась!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
  • Jump::redirect($url, $msg, $code, $header)
// Перейти на предыдущую страницу
\bigDream\thinkJump\Jump::redirect();

// Перейти на страницу Index/index, установить информацию для AJAX-запроса
\bigDream\thinkDream\Jump::redirect('Index/index', 'Пожалуйста, авторизуйтесь');

// Перейти на страницу Index/index, установить код состояния и информацию для AJAX-запроса
\bigDream\thinkDream\Jump::redirect('Index/index', 'Пожалуйста, авторизуйтесь', 301);

// Перейти на страницу Index/index, установить код состояния, заголовок и информацию для AJAX-запроса
\bigDream\thinkDream\Jump::redirect('Index/index', 'Пожалуйста, авторизуйтесь', 301, ['auth-token' => 'abcd学英语']);
  • Jump::result($data, $code, $msg, $type, $header)
$result = [
    ['id' => 1, 'name' => 'jwj'],
    ['id' => 2, 'name' => 'china'],
];

// Вернуть упакованные данные
\bigDream\thinkJump\Jump::result($result);

// Вернуть упакованные данные и установить код
\bigDream\thinkDream\Jump::result($result, 'success');

// Вернуть упакованные данные, установить код и сообщение
\bigDream\thinkDream\Jump::result($result, 'success', 'Запрос выполнен успешно');

// Вернуть упакованные данные, установить код, сообщение и тип данных
\bigDream\thinkDream\Jump::result($result, 'success', 'Запрос выполнен успешно', 'json');

// Вернуть упакованные данные, установить код, сообщение, тип данных и заголовок
\bigDream\thinkDream\Jump::result($result, 'success', 'Запрос выполнен успешно', 'json', ['auth-token' => 'abcd学英语']);

AJAX-запросы Если информация заголовка x-requested-with в текущем запросе равна XMLHttpRequest, то запрос считается AJAX-запросом. В этом случае программа автоматически определяет тип данных, который требуется клиенту, на основе информации заголовка accept, и возвращает соответствующие данные. На данный момент поддерживаются только три типа данных: json, jsonp и xml.

  • Пример JSON-ответа:
{
    "code": 0,
    "msg": "Операция прошла успешно!",
    "url": "/Index/index",
    "wait": 15,
    "data": null
}
  • Пример ответа JSONP:

Можно передать параметр callback в запросе, чтобы настроить метод обратного вызова JSONP. Обычно он помещается в URL-адрес или в POST-параметры.

jsonpReturn({
    "code": 0,
    "msg": "Операция прошла успешно!",
    "url": "/Index/index",
    "wait": 15,
    "data": null
});
  • Пример XML-ответа:
<?xml version="1.0" encoding="utf-8"?>
<think>
    <code>0</code>
    <msg>Операция прошла успешно!</msg>
    <url>/Index/index</url>
    <wait>15</wait>
    <data></data>
</think>

Возврат Response Для удобства использования в промежуточном программном обеспечении версия 2.0.0 добавила поддержку возврата объекта \think\Response. Достаточно вызвать метод returnResponse() перед вызовом метода перенаправления.

Простой пример:

return \bigDream\thinkJump\Jump::returnResponse()->success('Операция прошла успешно!');

return \bigDream\thinkJump\Jump::returnResponse()->error('Операция завершилась неудачно!');

reutrn \bigDream\thinkJump\Jump::returnResponse()->redirect();

reutrn \bigDream\thinkJump\Jump::returnResponse()->result([
    ['id' => 1, 'name' => 'jwj'],
    ['id' => 2, 'name' => 'china'],
]);

Пример промежуточного программного обеспечения:

<?php
namespace app\middleware;

use bigDream\thinkJump\Jump;

class Check
{

    /**
     * @param \think\Request $request
     * @param \Closure $next
     * @return \think\Response
     */
    public function handle($request, \Closure $next)
    {
        if (time() % 2) {
            return Jump::returnResponse()->error('Ой, чётные числа не могут получить доступ!');
        } else {
            return $next($request);
        }
    }
}

Конфигурация

  • Файл конфигурации При импорте этого пакета файл конфигурации jump.php автоматически создаётся в каталоге конфигурации /config. Его можно настроить в соответствии с требованиями.
<?php
// Конфигурация перенаправления
return [
   // Шаблон страницы успешного перенаправления
   'success_tmpl' => app()->getRootPath() . 'vendor/big-dream/think-jump/src/success.html',
   // Время ожидания после успешного перенаправления (в секундах)
   'success_wait' => 3,
   // Код успешного перенаправления
   'success_code' => 0,
   // Шаблон страницы ошибки перенаправления
   'error_tmpl'   => app()->getRootPath() .
...
``` ### Динамическое изменение конфигурации

Если вы хотите использовать динамическое изменение конфигурации, вы можете использовать метод `Jump::setConfig()`.
```php
// Изменение одного параметра конфигурации
\bigDream\thinkJump\Jump::setConfig('success_wait', 1);

// Изменение нескольких параметров конфигурации
\bigDream\thinkDream\Jump::setConfig([
    // Время ожидания на странице успешного перехода (в секундах)
    'success_wait' => 3,
    // Код успешного перехода
    'success_code' => 0,
    // Время ожидания на странице ошибки (в секундах)
    'error_wait'   => 3,
    // Код ошибки перехода
    'error_code'   => 1,
    // Формат данных по умолчанию для запросов AJAX: Json,Jsonp,Xml
    'ajax_return' => 'Json',
]);

Получение текущей конфигурации

// Получение всех параметров конфигурации
dump(\bigDream\thinkJump\Jump::getConfig());

// Получение одного параметра конфигурации
dump(\bigDream\thinkJump\Jump::getConfig('success_wait'));

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

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

Введение

Тхинк PHP6 переход расширение. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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