Download the PHP package symbiotic/full-single without Composer
On this page you can find all versions of the php package symbiotic/full-single. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download symbiotic/full-single
More information about symbiotic/full-single
Files in symbiotic/full-single
Package full-single
Short Description Full Symbiotic framework in single file.
License BSD-3-Clause
Informations about the package full-single
Symbiotic Web (MVP, Single-file)
Описание
Фреймфорк создан с целью упростить интеграцию независимых небольших приложений в другие CMS и фреймворки, а также для расширения функциональности пакетов для композера.
Идеология - отдельная экосистема небольших приложений для совместной работы вместе с другими фреймворками и удобной интеграции дополнительного функционала.
Есть много пакетов и отдельно написанных приложений, которые поставляют полезный функционал, имеют свою бизнес логику и иногда даже имеют свой отдельный веб интерфейс.
В ларавель пакеты, в симфони бандлы, в различных CMS в виде плагинов и дополнений, и у всех своя реализация роутинга, событий, кеширования и т.д. Взять пакет, написанный для ларавель, и интегрировать его в другой фреймворк или CMS, в большинсте случаев будет проблематично, а в некоторых нереально из-за определенных зависимостей от фреймворка.
Самим разработчикам приложений приходится писать адаптацию под каждый фреймворк и CMS, что создает много проблем и не покрывает все известные экосистемы.
Также такие приложения приходится интегрировать в систему:
- Настраивать ACL
- Интегрировать неоходимые скрипты админку и на фронт
- Создавать обработчики запросов и структуру в бд
- Делать связку с файловой системой
- Делать сохранение настроек и конфигурации
Примеров таких приложений много:
- одностраничные приложения
- текстовые редакторы и их плагины с несколькими уровнями зависимости (плагин для плагина)
- обработчики картинок
- различные оптимизаторы и компрессоры
- приложения для работы с файлами и базами данных
- чат боты
- административные, аналитические интрументы
- лендинги и другие микро приложения
- .....
Фреймворк оптимизирован для работы с большим количеством приложений, а также для работы в качетсве подсистемы для основного фреймворка.
Каждое приложение является композер пакетом, с дополнительным описанием прямо в файле composer.json.
Характеристики
- PSR дружественный
- Мало зависимостей (только PSR интерфейсы и PSR-7 имплементация)
- Небольшой вес (370 кб дев версия и формтированием и коментариями, продакт 170 кб)
- Оптимизирован для работы в симбиозе с другими фреймворками
- Многоуровневая система контейнеров (Ядро<-Приложение<-Плагин), с доступом к контейнеру родителю.
- Виртуальная файловая система (прокидывание статики прямо из папки пакета)
- Всем знакомое апи контейнера
- Шаблонизатор Blade(урезанный и кривой пока), + возможность прокинуть свой шаблонизатор.
- Никаких сборщиков статики (Каждый пакет должен иметь уже скомпилировынные файлы).
- Отложенный роутинг (грузятся только роуты запрошенного приложения, определяется по префиксу-поселению).
- Возможность расширять конревые сервисы (Бутстраперы и сервисы).
- У каждого приложения свой сервис контейнер и сервисы.
- Поддержка кеша (PSR-16 Simple Cache) + Кешируемый cервис контейнер.
- Для тех, кто будет тестировать: отличное приключение (почти реверс), абсолютно без документации и все одном файле!!!)))
Установка
Запуск
Фреймворк подключается из композера прямо в ваш index.php.
Если вы используете уже фреймворк, то необходимо включить режим симбиоза в конфиге
Инициализация
Схема описания расширения и приложения для фреймворка
Берем стандартный пакет композера и добавляем:
Пример пакета только со статикой
Всего пару строк:
Пример пакета приложения
При конфигурации приложения можно не указывать пути для статики и ресурсов, тогда будут определены пути по умолчанию:
- public_path = assets
- resources_path = resources
Шаблоны всегда дожны лежать в директории /view/ в папке ресурсов!
Примерная структура пакета
Четкой обязательной структуры нет, можно использовать любую.
При необходимости можно поселить все классы для приложения фреймворка в подпапку src/Symbiotic. Так не будет путаницы с функционалом вашего пакета.
All versions of full-single with dependencies
nyholm/psr7 Version >=1.3.2
psr/http-server-handler Version 1.0.*
psr/http-server-middleware Version 1.0.1
psr/http-factory Version 1.0.1
psr/event-dispatcher Version 1.0.*
psr/container Version ^1.0
psr/simple-cache Version 1.*
symbiotic/ui_http_kernel Version 1.*
ext-json Version *
ext-mbstring Version *