Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.
Заготовка для 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\
Для проверки пхп-кода используется 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 # запустить сборку для продакшена
Мини-модуль 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 # ссылки
Далее необходимо настроить веб-сервер для работы с новым сайтом.
Гайдлайн разработки Битрикс-проекта
В файле .arclint настроены основные проверки кода, в том числе описанные выше.