proklung/bitrix-symfony-base.git
Composer 安装命令:
composer require proklung/bitrix-symfony-base.git
包简介
Bitrix build with integration of Symfony
README 文档
README
Заготовка для 1C Bitrix проектов. На базе https://github.com/regiomedia/bitrix-project
Основное отличие: максимальное использование 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
- Инициализировать 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
** Доустановить модуль Базовых Битрикс компонентов. в административном интефейсе:
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.
По-умолчанию файлы фронтенда должны располагаться в директории local/assets.
Это можно переопределить в файле конфигурации webpack.config.js
Основные команды:
npm run encore -- dev # запустить сборку для разработчика один раз npm run encore -- dev --watch # запустить сборку для разработчика в режиме слежения за файлами npm run encore -- production # запустить сборку для продакшена
Vue
Мини-модуль vueInvoker
предназначен для инициализации Vue компонентов на странице.
Он упрощает использование Vue классическом веб-приложении, когда нет возможности
использовать один "корневой" экземпляр Vue (Как, например, это устроено в одностраничных приложениях).
Использование:
Вывести на страницу элемент-плейсхолдер для компонента:
<div class="vue-component" data-component="DemoApp" data-initial='{"test": "data"}'></div>
Создать соответствущий Vue-компонент (в директории local/assets/scripts/vue/components/:
<template> <div class="demo-app"> {{ hello }} {{ initial.test }} </div> </template> <script> export default { data() { return { hello: 'World', }; }, props: ['initial'], }; </script>
Добавить его в Коллекцию local/assets/scripts/vue/collection.js:
import DemoApp from './components/DemoApp.vue'; export default { DemoApp, };
Многосайтовость
Структура проекта напоминает заранее настроенную
многосайтовость на разных доменах
с отдельными директориями для каждого сайта. Файлы ядра подключаются относительными символическими ссылками.
Для добавления нового сайта нужно создать новую директорю в ./sites/(лучше всего если ее название будет
соответствовать коду нового сайта). И добавить в нее ссылки на необходимые файлы и директории:
mkdir sites/s2 # создать директорию для дополнительного сайта
cd sites/s2 # перейти в нее
mklink "local" "../../local" /j
mklink "bitrix" "../../bitrix" /j
mklink "upload" "../../upload" /j
Далее необходимо настроить веб-сервер для работы с новым сайтом.
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.
proklung/bitrix-symfony-base.git 适用场景与选型建议
proklung/bitrix-symfony-base.git 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 12, 最近一次更新时间为 2021 年 04 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「bitrix」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 proklung/bitrix-symfony-base.git 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 proklung/bitrix-symfony-base.git 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 proklung/bitrix-symfony-base.git 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The bundle for easy using json-rpc api on your project
Bundle Symfony DaplosBundle
Bitrix db migration core libs
CMS Bitrix migrations
Seo Tools for Bitrix
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-04-18