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

OSCHINA-MIRROR/baiy-Cadmin-server-php

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

Cadmin PHP: серверная часть

Адрес проекта: [github], [gitee].

Адрес онлайн-документации: https://baiy.github.io/Cadmin/.

Особенности

  1. Для удобства добавления функций бэкенда в существующую систему и ускорения разработки новых систем, бэкенд старается минимизировать зависимости от внешних бизнес-систем.
  2. Обработка запросов может быть настроена с помощью пользовательских классов диспетчеризации запросов, что упрощает использование и разработку системы без бизнес-системы. Система включает встроенные классы диспетчеризации для фреймворков Thinkphp и Laravel.

Установка

composer require baiy/cadmin

База данных

Подробности см. в разделе «Структура базы данных» (https://baiy.github.io/Cadmin/#/server/db).

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

После завершения установки кода и импорта базы данных необходимо внедрить бэкэнд системы в подходящее место текущей системы и выполнить соответствующую настройку.

Входной код

<?php
$admin = \Baiy\Cadmin\Admin::instance();
$admin->setPdo($pdo); // Установить объект операции с базой данных
// $admin->setTablePrefix(); // [Необязательно] Установить префикс таблицы встроенной системы данных. После установки необходимо изменить имена таблиц.
// $admin->registerDispatcher(); // [Необязательно] Зарегистрировать пользовательский диспетчер запросов
// $admin->registerPassword(); // [Необязательно] Зарегистрировать пользовательскую функцию генерации паролей
// $admin->addNoCheckLoginRequestId($id); // [Необязательно] Разрешить доступ к API без проверки прав доступа
// $admin->addOnlyLoginRequestId($id); // [Необязательно] Доступ к API только после входа в систему
// $admin->setInputActionName($name); // [Необязательно] Установить имя переменной запроса
// $admin->setInputTokenName($name); // [Необязательно] Установить имя токена запроса
// $admin->setLogCallback(function(\Baiy\Cadmin\Log $log){}); // [Необязательно] Функция обратного вызова для записи журнала запросов

// [Необязательно] Мониторинг SQL в реальном времени для облегчения ведения журнала. Необходимо вызвать соответствующий метод в соответствии с методом мониторинга SQL, используемым в проекте.
// $admin->getContext()->addListenSql($sql, $time);

// Получить результат обработки бизнес-логики. Затем вывести результат в формате JSON в соответствии с фактическим проектом.
$response = $admin->run();

Thinkphp 6.0

Место вставки кода
/route/app.php

Запрос соответствует фактической конфигурации файла маршрута.

Пример кода
<?php
use think\facade\Db;
use think\facade\Log;
use think\facade\Route;

// Клиентский API-маршрут входа. Запомните этот URL как адрес, предоставляемый клиентскому API.
Route::any('/api/admin/', function (){
    $admin = \Baiy\Cadmin\Admin::instance();
    // Временное решение: tp сначала должен запросить базу данных, чтобы получить объект pdo.
    Db::connect()->execute("select 1");
    $admin->setPdo(Db::connect()->getConnection()->getPdo()); // Установить объект операции с базой данных
    $admin->registerDispatcher(new \Baiy\Cadmin\Dispatch\Thinkphp60()); // [Необязательно] Регистрация встроенного класса вызовов Thinkphp
    // Другие настройки опущены. См. раздел «Входной код» выше...

    //  [Необязательно] Настройка функции обратного вызова журнала запросов
    // $admin->setLogCallback(function (\Baiy\Cadmin\Log $log) {
    //    Log::write($log->toJson(), 'notice');
    // });

    // Мониторинг SQL в режиме реального времени для упрощения ведения журнала
    // Db::listen(function ($sql, $time, $master) use ($admin) {
    //    $admin->getContext()->addListenSql($sql, $time);
    // });

    // Запуск
    return response($admin->run()->toArray(), 200,[],'json');
})->allowCrossDomain();

Laravel 5.8

Место вставки кода
/routes/api.php

Запрос соответствует фактической конфигурации файла маршрута.

Добавьте в /routes/web.php, обратите внимание на добавление CSRF белый список.

Пример кода
<?php
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;

// Клиенты API-маршрута входа. Запомните этот URL как адрес, предоставленный клиентскому API.
Route::any('/api/admin/', function () {
    // Передняя и задняя части разделены, обычно возникают проблемы с междоменными запросами. Решайте самостоятельно.
    header('Access-Control-Allow-Origin: *');
    $admin = \Baiy\Cadmin\Admin::instance();
    $admin->setPdo(Db::connection()->getPdo()); // Установить объект операции с базой данных
    $admin->registerDispatcher(new \Baiy\Cadmin\Dispatch\Laravel58()); // [Необязательно] Регистрация встроенного класса вызовов Laravel
    // Остальные настройки опущены. Смотрите раздел «Входной код» выше...

    // [Необязательно] Настройка функции обратного вызова журнала запросов
    // $admin->setLogCallback(function (\Baiy\Cadmin\Log $log) {
    //    Log::info($log->toJson());
    // });

    // Мониторинг SQL в режиме реального времени для упрощения ведения журнала
    // Db::listen(function ($query) use ($admin) {
    //    $admin->getContext()->addListenSql(
    //        sprintf(str_replace("?","%s",$query->sql),...$query->bindings),
    //        $query->time
    //    );
    // });

    // Запуск
    return response()->json($admin->run()->toArray());
});

Пользовательская функция генерации паролей

  1. Реализуйте интерфейс Baiy\Cadmin\Password\Password.
  2. Зарегистрируйте генератор паролей, используя \Baiy\Cadmin\Admin::registerPassword().

Встроенный генератор паролей: https://github.com/baiy/Cadmin-server-php/blob/master/src/Password/PasswrodDefault.php.

Встроенная функция генерации паролей: base64_encode(hash('sha256',hash("sha256", $password.$salt,FALSE).$salt,FALSE).'|'.$salt);

Разработка пользовательского диспетчера запросов

  1. Реализовать интерфейс \Baiy\Cadmin\Dispatch\Dispatch.
  2. Зарегистрировать диспетчер, используя \Baiy\Cadmin\Admin::registerDispatcher().

Встроенные диспетчеры: https://github.com/baiy/Cadmin-server-php/tree/master/src/Dispatch.

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

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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