regiomedia / bitrix-project

Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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\

Используемые пакеты:

Контроль качества

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

About

Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.


Languages

Language:PHP 58.5%Language:CSS 20.6%Language:JavaScript 20.3%Language:HTML 0.6%