CodeIgniter
Возьмем для примера версию 3.1.7, адрес загрузки:codeigniter.org.cn/.
После скачивания разархивируйте его в текущую папку, у вас получится папка CodeIgniter-3.1.7, переименуйте ее в свое любимое имя проекта, мое JWT-RESTfull-IN-CI-Tutorial, как показано на рисунке:
Стартовый проект
Затем откройте проект CI с помощью IDE или чего-то подобного, например PhpStorm, NetBeans, Sublime и т. д. Конечно, здесь я использую vscode, но это почти то же самое.
Откройте терминал vscode или cmd, если вы можете запустить командную строку и запустить встроенный сервер PHP, убедитесь, что вы добавили php в переменную среды в корневой каталог проекта, который является каталогом где находится index.php Тип: php -S localhost:8000
ОК, зайдите в браузереhttp://localhost:8000, вы увидите страницу приветствия CodeIgniter:
Если вы не хотите использовать встроенный веб-сервер PHP, вы можете использовать apache или другой веб-сервер для запуска проекта.
FIRBASE/PHP-JWT
Во-первых, нам нужно найти колесо PHP JWT (пакет), поэтому нам нужно только интегрировать это колесо в проект CI и использовать его напрямую.
1. Доступjwt.io;
2. Нажмите на навигацию «Библиотеки», и соответствующие колеса, написанные на каждом языке, будут перечислены ниже;
3. CTRL + F, прямой поиск «php» на текущей странице и поиск firbase/php-jwt с наибольшим количеством звездочек;
4. Перейти кGitHub.com/firebase/fit…, прочитайте README, чтобы получить общее представление об этом.
Помимо прямой установки через композитор, PHP-JWT также может напрямую загружать исходный код.
GitHub.com/firebase/fit…Вот 4 файла php, скачайте или скопируйте их в application/libraries/ :
Поскольку мы не устанавливали его через composer, в JWT.php нам нужно вручную потребовать еще 3 файла:
Кроме того, jwt также необходимо предоставить ключ для генерации значения токена.Поскольку это конфигурация, мы создаем файл конфигурации в каталоге файла конфигурации CI application/config/: jwt.php.
CODEIGNITER-RESTSERVER
GitHub.com/Chris Card Book Если…Это пакет restserver, специально созданный для CI. После его добавления он может легко получать или обрабатывать такие запросы, как GET, POST, PUT и DELETE.
Этот исходный код на самом деле является проектом CI после добавления RestServer, и его фактический исходный код имеет в общей сложности 4:
1. REST_Controller, главный контроллер RestServer, вам нужно наследовать его от вашего собственного бизнес-контроллера, так же, как наследование CI_Controller;
2. Format, используется для форматирования данных ответа, которые могут быть в формате json, array, csv, html, php, xml, по умолчанию — json;
3. rest, файл конфигурации RestServer, аналогичный большинству файлов конфигурации в CI;
4. rest_controller_lang, который является элементом конфигурации интернационализации RestServer, который содержит более языков 10. Здесь мы пока выбираем только английский.
Как и PHP-JWT, поместите их в соответствующие каталоги:
У него нет очень подробной документации, но есть простое руководство по его использованию:code.TuTuCyprus.com/tutorials/i…
Однако комментарии в исходном коде очень и очень подробные, и, вообще говоря, их легко понять.
Базовая структура таблицы
Чтобы по-настоящему смоделировать HTTP-запросы и реальные бизнес-сценарии, теперь давайте создадим очень простую таблицу todos:
После создания таблицы не забудьте заполнить текущую конфигурацию базы данных в application/config/database.php.
Мы добавили php-jwt, codeigniter-restserver в CI, построили таблицы базы данных и настроили ссылки на базу данных.
Круто, все приготовления готовы, дальше, в следующем туториале я смоделирую конкретный бизнес-сценарий:
1. Пользователь входит в систему, сервер проверяет учетную запись и пароль и в случае успеха возвращает json-токен текущего пользователя;
2. Пользователи могут выполнять CRUD для таблицы задач и проверять, является ли веб-токен json законным во время операции CRUD;