PHPackages                             symbiotic/full-single - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. symbiotic/full-single

ActiveLibrary[Framework](/categories/framework)

symbiotic/full-single
=====================

Full Symbiotic framework in single file.

1.2.13(4y ago)236BSD-3-ClausePHPPHP &gt;=7.2

Since Aug 17Pushed 4y ago1 watchersCompare

[ Source](https://github.com/symbiotic-php/full-single)[ Packagist](https://packagist.org/packages/symbiotic/full-single)[ RSS](/packages/symbiotic-full-single/feed)WikiDiscussions master Synced today

READMEChangelog (9)Dependencies (8)Versions (10)Used By (0)

Symbiotic Web (MVP, Single-file)
================================

[](#symbiotic-web-mvp-single-file)

### Описание

[](#описание)

**Фреймфорк создан с целью упростить интеграцию независимых небольших приложений в другие CMS и фреймворки, а также для расширения функциональности пакетов для композера.**

Идеология - отдельная экосистема небольших приложений для совместной работы вместе с другими фреймворками и удобной интеграции дополнительного функционала.

Есть много пакетов и отдельно написанных приложений, которые поставляют полезный функционал, имеют свою бизнес логику и иногда даже имеют свой отдельный веб интерфейс.

В ларавель пакеты, в симфони бандлы, в различных CMS в виде плагинов и дополнений, и у всех своя реализация роутинга, событий, кеширования и т.д. Взять пакет, написанный для ларавель, и интегрировать его в другой фреймворк или CMS, в большинсте случаев будет проблематично, а в некоторых нереально из-за определенных зависимостей от фреймворка.

Самим разработчикам приложений приходится писать адаптацию под каждый фреймворк и CMS, что создает много проблем и не покрывает все известные экосистемы.

Также такие приложения приходится интегрировать в систему:

1. Настраивать ACL
2. Интегрировать неоходимые скрипты админку и на фронт
3. Создавать обработчики запросов и структуру в бд
4. Делать связку с файловой системой
5. Делать сохранение настроек и конфигурации

Примеров таких приложений много:

- одностраничные приложения
- текстовые редакторы и их плагины с несколькими уровнями зависимости (плагин для плагина)
- обработчики картинок
- различные оптимизаторы и компрессоры
- приложения для работы с файлами и базами данных
- чат боты
- административные, аналитические интрументы
- лендинги и другие микро приложения
- .....

Фреймворк оптимизирован для работы с большим количеством приложений, а также для работы в качетсве подсистемы для основного фреймворка.

Каждое приложение является композер пакетом, с дополнительным описанием прямо в файле composer.json.

Характеристики
--------------

[](#характеристики)

- PSR дружественный
- Мало зависимостей (только PSR интерфейсы и PSR-7 имплементация)
- Небольшой вес (370 кб дев версия и формтированием и коментариями, продакт 170 кб)
- Оптимизирован для работы в симбиозе с другими фреймворками
- Многоуровневая система контейнеров (Ядро&lt;-Приложение&lt;-Плагин), с доступом к контейнеру родителю.
- Виртуальная файловая система (прокидывание статики прямо из папки пакета)
- Всем знакомое апи контейнера
- Шаблонизатор Blade(урезанный и кривой пока), + возможность прокинуть свой шаблонизатор.
- Никаких сборщиков статики (Каждый пакет должен иметь уже скомпилировынные файлы).
- Отложенный роутинг (грузятся только роуты запрошенного приложения, определяется по префиксу-поселению).
- Возможность расширять конревые сервисы (Бутстраперы и сервисы).
- У каждого приложения свой сервис контейнер и сервисы.
- Поддержка кеша (PSR-16 Simple Cache) + Кешируемый cервис контейнер.
- Для тех, кто будет тестировать: отличное приключение (почти реверс), абсолютно без документации и все одном файле!!!)))

Установка
---------

[](#установка)

```
composer require symbiotic/full-single

```

Запуск
------

[](#запуск)

Фреймворк подключается из композера прямо в ваш index.php.

Если вы используете уже фреймворк, то необходимо включить режим симбиоза в конфиге

```
$config['symbiosis'] = true;
```

##### Инициализация

[](#инициализация)

```
$basePath = dirname(__DIR__);// корневая папка проекта
include_once $basePath. '/vendor/autoload.php';

$config  = [
    'debug' => false,
    'symbiosis' => true, // Режим симбиоза, если включен и фреймворк не найдет обработчик,
    // то он ничего не вернет и основной фреймворк смодет сам обработать запрос
    'default_host' => 'localhost',// для консоли , но ее пока нет
    'uri_prefix' => 'symbiotic', // Префикс в котором работет фреймворк, если пустой то работае от корня
    'base_path' => $basePath, // базовая папка проекта
    'assets_prefix' => '/assets',
    'storage_path' =>  $basePath . '/storage', // Если убрать то кеш отключится
    'packages_paths' => [
        $basePath . '/vendor', // Папка для приложений
    ],
    'bootstrappers' => [
            //\Symbiotic\Develop\Bootstrap\DebugBootstrap::class,/// debug with develop app only
              \Symbiotic\Core\Bootstrap\EventBootstrap::class,
              \Symbiotic\SimpleCacheFilesystem\Bootstrap::class,
              \Symbiotic\Packages\PackagesLoaderFilesystemBootstrap::class,
              \Symbiotic\Packages\PackagesBootstrap::class,
              \Symbiotic\Packages\ResourcesBootstrap::class,
              \Symbiotic\Apps\Bootstrap::class,
              \Symbiotic\Http\Bootstrap::class,
              \Symbiotic\Http\Kernel\Bootstrap::class,
              \Symbiotic\View\Blade\Bootstrap::class,
              \Symbiotic\Routing\SettlementsPreloadMiddlewareBootstrap::class,
    ],
    'providers' => [
        \Symbiotic\Http\Cookie\CookiesProvider::class,
        \Symbiotic\Routing\SettlementsRoutingProvider::class,
        \Symbiotic\Session\NativeProvider::class,
    ],
    'providers_exclude' => [
        \Symbiotic\Routing\Provider::class,
    ]
];

// Базовая постройка контейнера
$core = new \Symbiotic\Core\Core($config);
// Или через билдер с кешем
$cache = new Symbiotic\SimpleCacheFilesystem\SimpleCache($basePath . '/storage/cache/core');
$core = (new \Symbiotic\Core\ContainerBuilder($cache))
    ->buildCore($config);

// Запуск
$core->run();
// Дальше может идти код инициализации и отработки другого фреймворка...
```

##### Схема описания расширения и приложения для фреймворка

[](#схема-описания-расширения-и-приложения-для-фреймворка)

Берем стандартный пакет композера и добавляем:

```
{
  "name": "vendor/package",
  "require": {
   // ...
  },
  "autoload": {
   ///

  },
// Добавляем описание пакета для фреймворка
  "extra": {
    "symbiotic": {
          "id": "wso.my_package_id", // ID пакета формируется на сайте фреймворка, но можно локально любой ставить
           // Описание приложения, пакет может и не иметь секцию приложения, а быть лишь расширением
          "app": {
                "id": "my_package_id", // Id приложения, указывается без префикса родительского приложения
                "parent_app": "wso", // ID родительсского приложения, если приложение плагин
                "name": "WSO Users exporter", // Имя приложения, используется в списке приложений и меню
                "routing": "\\\\MyVendor\\\\MySuperPackage\\\\Routing", // Класс роутинга, не обязательно
                "controllers_namespace": "\\\\Symbiotic\\\\Develop\\\\Controllers", // Базовый неймспейс для контроллеров, не обязательно
                "version": "1.0.0", // Версия, не обязательно, плагины могут проверять и подстаиваться под изменения
                "providers": [ // Провайдеры приложения, не обязательно
                  "MyVendor\\\\MySuperPackage\\\\Providers\\\\AppProvider"
                ],
                // Не обязательно! Наследник от \\Symbiotic\\App\\Application
                "app_class": "MyVendor\\\\MySuperPackage\\\\MyAppContainer"
          },

          // Расширения ядра фреймворка, не обязательно
          "bootstrappers":[
             "MyVendor\\\\MySuperPackage\\\\CoreBootstrap" // Загрузчики
          ],
          "providers" : [
             "MyVendor\\\\MySuperPackage\\\\MyDbProvider" // Провайдеры
          ],
          "providers_exclude" : [
              // Исключение провайдеров из загрузки
              // Например при двух пакетах одной библиотеки позволяет исключить не нужную
          ]
    }
  }
}
```

#### Пример пакета только со статикой

[](#пример-пакета-только-со-статикой)

Всего пару строк:

```
{
  "name": "vendor/package",
  "require": {
   // ...
  },
  "autoload": {
   // ...
  },
  "extra": {
    "symbiotic": {
          "id": "my_super_theme_2",
          // Можно указать что то одно или все вместе
          "public_path": "assets", // Папка со статикой, относительно корня пакета
          "resources_path": "my_resources", // Папка c шаблонами и другими файлами, не доступны через http
          // можно прокинуть в веб при необходимости через специальный пакет доступа к ресурсам
    }
  }
}
```

#### Пример пакета приложения

[](#пример-пакета-приложения)

При конфигурации приложения можно не указывать пути для статики и ресурсов, тогда будут определены пути по умолчанию:

- public\_path = assets
- resources\_path = resources

Шаблоны всегда дожны лежать в директории /view/ в папке ресурсов!

```
{
  "name": "vendor/package",
  "require": {
   // ...
  },
  "autoload": {
   // ...
  },
  "extra": {
    "symbiotic": {
           "app": {
                "id": "my_package_id", // Id приложения
                "routing": "\\\\MyVendor\\\\MySuperPackage\\\\Routing",
                "controllers_namespace": "\\\\Symbiotic\\\\Develop\\\\Controllers"
          },
    }
  }
}
```

Примерная структура пакета
--------------------------

[](#примерная-структура-пакета)

Четкой обязательной структуры нет, можно использовать любую.

```
vendor/
   -/my_vendor
      -/my_package_name
           -/assets          - Статика
                -/js
                -/css
                -/...
           -/resources       - Ресурсы
                -/views
                -/...
           -/src             - Ваш пакет
               -/Http
                   -/Cоntrollers
                   -/...
               -/ ...
               -/Routing.php
          -/composer.json

```

При необходимости можно поселить все классы для приложения фреймворка в подпапку src/Symbiotic. Так не будет путаницы с функционалом вашего пакета.

```
vendor/
   -/my_vendor
      -/my_package_name
           -/symbiotic
                   -/assets          - Статика
                        -/js
                        -/css
                        -/...
                   -/resources       - Ресурсы
                        -/views
                        -/...
           -/src                     - Ваш пакет
               -/Symbiotic
                       -/Http
                           -/Cоntrollers
                           -/...
                       -/Routing.php
              -/Ваши папки и файлы ...

          -/composer.json

```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

9

Last Release

1681d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.4

1.1.0PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/a7ef7750fdc43614c00e641939b148f999b2771b930cf3cf1b18c66fe614de9c?d=identicon)[symbiotic](/maintainers/symbiotic)

---

Tags

symbioticsingle file frameworksymbiotic web

### Embed Badge

![Health badge](/badges/symbiotic-full-single/health.svg)

```
[![Health](https://phpackages.com/badges/symbiotic-full-single/health.svg)](https://phpackages.com/packages/symbiotic-full-single)
```

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[neos/flow

Flow Application Framework

862.0M448](/packages/neos-flow)[thecodingmachine/graphqlite

Write your GraphQL queries in simple to write controllers (using webonyx/graphql-php).

5723.1M30](/packages/thecodingmachine-graphqlite)[windwalker/framework

The next generation PHP framework.

25639.1k1](/packages/windwalker-framework)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M385](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
