freeframework / core-service-https-router
The main https routing service of the framework from FreeFramework. Alpha version.
Package info
gitverse.ru/aniks/freeframework__core_service__https_router
pkg:composer/freeframework/core-service-https-router
Requires
- php: ^8.2
- freeframework/core-service-kernel: ^1.0.0
This package is not auto-updated.
Last update: 2026-04-22 16:30:57 UTC
README
Оглавление
Обзор пакета
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_pagedir"). Базовая директория определяеться относительно места вызова ядра фреймворка. Приоритет: абсолютный путь -> относительный путь -> директория вызова если ключь не задан или не корректен. Задает шаблон директории финализации запроса, по дефолту "". Приоритет: точность запроса. Примеры в таблице:
Обозначения
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.directory | core.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 - прямо и обратно совместимы.