bitrix-project
bitrix-project copied to clipboard
Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.
Bitrix Project
Заготовка для 1C Bitrix проектов.
Создание нового проекта
Стандартно установить или развернуть из бекапа копию Битрикса.
Клонировать репозиторий (за пределами публичной директории веб-сервера).
Переинициализировать репозиторий: удалить директорию .git
и выполнить git init
.
Установить зависимости и "собрать" фронтенд:
composer install && npm install && npm run encore -- dev
Перенести в корень клонированного проекта содержимое директорий bitrix
, upload
и local
(не затирая файл local/php_interface/init.php
).
В директорию sites/s1
перенести публичные файлы сайта.
Настроить вебсервер для работы с директорией sites/s1
либо сделать симлинк вида
/home/bitrix/www -> /home/bitrix/projectname/sites/s1
Создать файл .env
touch .env
Заполнить его данными в соответствии с файлом-образцом .env.example
Выполнить команду
./vendor/bin/jedi env:init default
Эта команда скопирует в директорию bitrix
системные файлы настроек сконфигурированные для работы с
переменными окружения, а также настройки
шаблонизатора Twig
и логгера Monolog
Установить модуль миграций
php migrator install
Доустановить модуль Базовых Битрикс компонентов. в административном интефейсе:
Marketplace > Установленные решения > ББК (bex.bbc)
Бэкенд
Composer и PSR-4 автозагрузка классов из директории local/classes
. Пространство имен \Local\
Используемые пакеты:
- arrilot/bitrix-migrations
- arrilot/bitrix-models
- bitrix-expert/bbc
- bitrix-expert/monolog-adapter
- bitrix-expert/tools
- maximaster/tools.twig
- notamedia/console-jedi
- kint-php/kint и kint-php/kint-twig
- vlucas/phpdotenv
Контроль качества
Для проверки пхп-кода используется squizlabs/PHP_CodeSniffer.
Код проверятся в соответствии с набором правил, описанных в файле ruleset.xml.
На данный момент, это стандарт PSR-2 (рус./англ.), а также наличие PHPDoc-комментариев.
Проверяются файлы из директорий local/classes и local/components
(за исключением файлов template.php
)
Проверка осуществляется командой (это запуск утилиты 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,
};
Контроль качества
JS-файлы проверяются на соответствие стандарту airbnb утилитой ESLint. Конфигурация линтера - файл .eslintrc
npm run lint:scripts # показать ошибки
npm run fix:scripts # исправить ошибки
SCSS-файлы проверяются утилитой stylelint. Основа - набор правил sass-guidelines. Конфигурация - файл .stylelintrc
npm run lint:styles # показать ошибки
npm run fix:styles # исправить ошибки
За исправление стилевых файлов отвечает пакет stylefmt
Многосайтовость
Структура проекта напоминает заранее настроенную
многосайтовость на разных доменах
с отдельными директориями для каждого сайта. Файлы ядра подключаются относительными символическими ссылками.
Для добавления нового сайта нужно создать новую директорю в ./sites/
(лучше всего если ее название будет
соответствовать коду нового сайта). И добавить в нее ссылки на необходимые файлы и директории:
mkdir sites/s2 # создать директорию для дополнительного сайта
cd sites/s2 # перейти в нее
ln -s ../../bitrix bitrix # и
ln -s ../../local local # добавить
ln -s ../../upload upload # ссылки
Далее необходимо настроить веб-сервер для работы с новым сайтом.
Разное
Гайдлайн разработки Битрикс-проекта
Для пользователей Phabricator
В файле .arclint настроены основные проверки кода, в том числе описанные выше.