PHPackages                             proklung/bitrix-symfony-base.git - 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. proklung/bitrix-symfony-base.git

ActiveLibrary[Framework](/categories/framework)

proklung/bitrix-symfony-base.git
================================

Bitrix build with integration of Symfony

2.3.4(4y ago)120MITPHP

Since Apr 18Pushed 4y ago3 watchersCompare

[ Source](https://github.com/ProklUng/bitrix-symfony-base)[ Packagist](https://packagist.org/packages/proklung/bitrix-symfony-base.git)[ RSS](/packages/proklung-bitrix-symfony-basegit/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (34)Versions (63)Used By (0)

Bitrix Project + Symfony
========================

[](#bitrix-project--symfony)

Заготовка для 1C Bitrix проектов. На базе

Основное отличие: максимальное использование Symfony. Поддерживаются бандлы, сервис контейнер с полным функционалом фрэймворка (аннотации, auto wiring), роутинг, консоль и так далее.

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

Плюс всевозможный - используемый мною в реальных проектах - функционал (размещается в бандлах Symfony).

А также плоды всевозможных досужих экспериментов, оказавшихся полезными в работе.

Создание нового проекта
-----------------------

[](#создание-нового-проекта)

- Создать папку нового проекта в OSPanel/domains и Клонировать эту базовую сборку

К примеру:

```
git clone proklung/bitrix-symfony-base.git ./
```

- Настроить вебсервер для работы с директорией `sites/s1` либо сделать симлинк вида

    ```
    /home/bitrix/www -> /home/bitrix/projectname/sites/s1
    ```

    (Настроить локальный домен в OpenServer со ссылкой на sites/s1)

### Зависимости

[](#зависимости)

- Установить зависимости composer (backend):

```
composer install
```

- Установить зависимости npm (frontend):

```
npm install
```

### Bitrix

[](#bitrix)

- Удалить папку bitrix
- Инициализировать submodule:

```
git submodule init
```

- Запустить submodule (cклонируется bitrix):

```
git submodule update
```

Или настроить его иным способом (через git submodule ad).

#### ВАЖНО

[](#важно)

Перед этой процедурой обновить `include.php` в `environments/*/bitrix/modules/main`, на актуальный из сабмодуля или устанавливаемого иным способом Битрикса.

После этого рекомендуется сделать еще разок `composer update` дабы подтянулись битриксовые модули.

### Символьные ссылки

[](#символьные-ссылки)

В директорию `sites/s1` перенести публичные файлы сайта.

В виндовом терминале:

```
mklink "local" "../../local" /j
mklink "bitrix" "../../bitrix" /j
mklink "upload" "../../upload" /j
```

### База данных и окружение

[](#база-данных-и-окружение)

- Создать базу данных на localhost
- Развернуть бэкап базы из bitrix/backup
- Создать файл `.env`

```
touch .env
```

- Заполнить его данными в соответствии с файлом-образцом `.env.example`
- Развернуть окружение

```
php bin/jedi env:init default

Эта команда скопирует в директорию `bitrix` системные файлы настроек сконфигурированные для работы с
[переменными окружения](https://github.com/vlucas/phpdotenv), а также настройки
[шаблонизатора Twig](https://github.com/maximaster/tools.twig).

### Миграции

- Установить [модуль миграций](https://github.com/arrilot/bitrix-migrations)

```sh
php migrator install
```

- Запуск миграций

```
php migrator migrate
```

\*\* Доустановить модуль [Базовых Битрикс компонентов](https://github.com/bitrix-expert/bbc). в административном интефейсе:

`Marketplace > Установленные решения > ББК (bex.bbc)`

### "Собрать" фронтенд

[](#собрать-фронтенд)

```
npm run encore -- dev
```

Бэкенд
------

[](#бэкенд)

Composer и PSR-4 автозагрузка классов из директории `local/classes`. Пространство имен `\Local\ `

Проверка осуществляется командой (это запуск утилиты `phpcs` с предустановленными параметрами)

```
composer run lint:php
```

Также есть возможность исправить часть обнаруженных ошибок утилитой `phpcbf`

```
composer run fix:php
```

Фронтенд
--------

[](#фронтенд)

В качестве "сборщика" изпользуется [symfony/webpack-encore](https://github.com/symfony/webpack-encore).

По-умолчанию файлы фронтенда должны располагаться в директории `local/assets`.

Это можно переопределить в файле конфигурации [webpack.config.js](./webpack.config.js)

Основные команды:

```
npm run encore -- dev          # запустить сборку для разработчика один раз
npm run encore -- dev --watch  # запустить сборку для разработчика в режиме слежения за файлами
npm run encore -- production   # запустить сборку для продакшена
```

#### Vue

[](#vue)

Мини-модуль [vueInvoker](local/assets/scripts/util/vueInvoker.js)предназначен для инициализации Vue компонентов на странице. Он упрощает использование Vue классическом веб-приложении, когда нет возможности использовать один "корневой" экземпляр `Vue` (Как, например, это устроено в одностраничных приложениях).

#### Использование:

[](#использование)

Вывести на страницу элемент-плейсхолдер для компонента:

```

```

Создать соответствущий Vue-компонент (в директории `local/assets/scripts/vue/components/`:

```

        {{ hello }}

        {{ initial.test }}

    export default {
      data() {
        return {
          hello: 'World',
        };
      },
      props: ['initial'],
    };

```

Добавить его в Коллекцию `local/assets/scripts/vue/collection.js`:

```
import DemoApp from './components/DemoApp.vue';

export default {
  DemoApp,
};
```

Многосайтовость
---------------

[](#многосайтовость)

Структура проекта напоминает *заранее* настроенную [многосайтовость на разных доменах](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=103&LESSON_ID=287)с отдельными директориями для каждого сайта. Файлы ядра подключаются *относительными* символическими ссылками. Для добавления нового сайта нужно создать новую директорю в `./sites/`(лучше всего если ее название будет соответствовать коду нового сайта). И добавить в нее ссылки на необходимые файлы и директории:

```
mkdir sites/s2             # создать директорию для дополнительного сайта
cd sites/s2                # перейти в нее
mklink "local" "../../local" /j
mklink "bitrix" "../../bitrix" /j
mklink "upload" "../../upload" /j

```

Далее необходимо настроить веб-сервер для работы с новым сайтом.

Composer scripts
----------------

[](#composer-scripts)

Приложено пару примеров скриптов для composer, запускающимся по событиям `post-update` и `post-install`.

- `Local\ComposerScript\RunMigrationsHandler` - запускает миграции.
- `Local\ComposerScript\CacheWarmerHandler` - убивает и прогревает кэш.

Добавить в секцию `scripts` файла `composer.json`:

```
  "scripts": {
    "post-update-cmd": [
      "Local\\ComposerScript\\RunMigrationsHandler::doInstall",
      "Local\\ComposerScript\\CacheWarmerHandler::doInstall"
    ],
    "post-install-cmd": [
      "Local\\ComposerScript\\RunMigrationsHandler::doInstall",
      "Local\\ComposerScript\\CacheWarmerHandler::doInstall"
    ],
    "cache:warm": "Local\\ComposerScript\\CacheWarmerHandler::doInstall",
    "migrations:run": "Local\\ComposerScript\\RunMigrationsHandler::doInstall"
  },
```

Появятся команды:

```
composer cache:warm
```

и

```
composer migrations:run
```

Прочее
------

[](#прочее)

- Пришлось залочить пакет `psr/container` на версию 1.0. Без этого ставился 1.1.1 (по запросу Symfony DI) и конструкция падала из-за несоответствия интерфейсов.

Последствия: DI компонент пока версии 5.2, а не актуальной 5.3.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~4 days

Recently: every ~41 days

Total

62

Last Release

1569d ago

Major Versions

1.9.0 → 2.0.02021-07-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/9210c86ee6734e537eaf22c0f2fe7a965451e340e39e1aae2b74013f24c2660d?d=identicon)[gedovan](/maintainers/gedovan)

---

Top Contributors

[![ProklUng](https://avatars.githubusercontent.com/u/19857467?v=4)](https://github.com/ProklUng "ProklUng (203 commits)")

---

Tags

bitrixbitrix-cmsbitrix-symfonysymfonysymfonybitrix

###  Code Quality

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/proklung-bitrix-symfony-basegit/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-bitrix-symfony-basegit/health.svg)](https://phpackages.com/packages/proklung-bitrix-symfony-basegit)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

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

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[contao/manager-bundle

Provides the Contao Managed Edition

181.3M61](/packages/contao-manager-bundle)

PHPackages © 2026

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