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 настроены основные проверки кода, в том числе описанные выше.