freeframework__core_service__https_router

0
3 дня назад
3 дня назад
3 дня назад
3 дня назад
3 дня назад
3 дня назад
3 дня назад
3 дня назад
3 дня назад
README.md

Документация по сервису FreeFramework core-service-https-router

Оглавление

Обзор пакета

core-service-https-router
— это базовый сервис https роутинга FreeFramework обрабатывающий https запросы, поддерживает три расширение:

  • FreeFramework\CoreService\HttpsRouter\Interfaces\Optional\CookieInterface::class - сервис для управления cookie.
  • FreeFramework\CoreService\HttpsRouter\Interfaces\Optional\PageControllerInterface::class - базовый сервис для финализации https запроса.
  • FreeFramework\CoreService\HttpsRouter\Interfaces\Optional\SessionInterface::class - сервис для управления сессиями.

Назначение пакета

Пакет определяет базовую директорию (далее base_dir) для иерархии конфигураций сервисов в соответствии с началом запроса (ключ в конфигурации "path_page_dir"). Базовая директория определяеться относительно места вызова ядра фреймворка. Приоритет: абсолютный путь -> относительный путь -> директория вызова если ключь не задан или не корректен. Задает шаблон директории финализации запроса, по дефолту "_". Приоритет: точность запроса. Примеры в таблице:

Обозначения

  • pages/
    – базовая директория, переданная в
    path_page_dir
    .
  • _
    – значение
    multi_request_dir
    (по умолчанию).
  • config.php
    – файл конфигурации, который загружается при совпадении.
  • core.directory
    – путь, сохранённый в хранилище данных.
  • core.page_request
    – массив оставшихся сегментов пути (если есть).

Структуры конфигураций

1

pages/ # базовая директория ├── config.php # корневой конфиг └── about/ # реальная папка └── config.php # её конфиг

2

pages/ └── products/ # реальная папка └── _/ # папка-обработчик параметров └── config.php # конфиг для динамических URI

3

pages/ └── blog/ └── posts/ # реальная папка ├── config.php # её конфиг └── _/ # папка-обработчик └── config.php # конфиг для вложенных параметров

4

pages/ └── cat/ └── electronics/ └── phones/ # конечная реальная папка ├── config.php # её конфиг └── _/ # папка-обработчик └── config.php # конфиг для параметров (ID, etc.)

5

pages/ ├── config.php # корневой конфиг ├── _/ # корневой обработчик │ └── config.php # конфиг для любых неизвестных URI └── about/ # реальная папка └── config.php # её конфиг

Таблица примеров

СтруктураПример запросаcore.directorycore.page_requestЗагруженный config.php
1
/
pages/
не установлен
pages/config.php
1
/about
pages/about
не установлен
pages/about/config.php
1
/about/team
""
(пусто)
['team']
не загружен
2
/products
pages/products
не установленне загружен
2
/products/123
pages/products/_
['123']
pages/products/_/config.php
2
/products/123/edit
pages/products/_
['123', 'edit']
pages/products/_/config.php
3
/blog/posts
pages/blog/posts
не установлен
pages/blog/posts/config.php
3
/blog/posts/2024
pages/blog/posts/_
['2024']
pages/blog/posts/_/config.php
3
/blog/posts/2024/01/15
pages/blog/posts/_
['2024', '01', '15']
pages/blog/posts/_/config.php
4
/cat/electronics/phones
pages/cat/electronics/phones
не установлен
pages/cat/electronics/phones/config.php
4
/cat/electronics/phones/iphone-14
pages/cat/electronics/phones/_
['iphone-14']
pages/cat/electronics/phones/_/config.php
4
/cat/electronics/phones/iphone-14/specs
pages/cat/electronics/phones/_
['iphone-14', 'specs']
pages/cat/electronics/phones/_/config.php
5
/
pages/
не установлен
pages/config.php
5
/about
pages/about
не установлен
pages/about/config.php
5
/any
pages/_
['any']
pages/_/config.php
5
/any/thing/else
pages/_
['any', 'thing', 'else']
pages/_/config.php
5
/about/extra
""
(пусто)
['extra']
не загружен

Требования

  • PHP: версия 8.2 или выше
  • Composer: для управления зависимостями
  • "freeframework/core-service-kernel": "^1.0.0"

Общие данные по версиям сервисов

  • Версии a и b - не совместимы.
  • Версии a.b и a.c - обратно совместимы.
  • Версии a.b.c и a.b.d - прямо и обратно совместимы.