Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.
Switch branches/tags
Nothing to show
Clone or download
vkryukov76 Обновлены внешние зависимости.
Основное

- В encore добавлена работа с PostCSS
- Исправлением стилей займется `stylelint --fix` вместо `stylefmt`
- PHPCS теперь работает с учетом кодировки unicode и правильно считает количество символов в строке
- Обновлен и дополнен комментариями файл c правилами проверки php-файлов
Latest commit 3a673e7 Oct 26, 2018
Permalink
Failed to load latest commit information.
environments Обновлены настройки стандартного окружения - ./vendor/bin/jedi env:in… Oct 26, 2018
local Добавлена возможность предварительной конфигурации экземпляра Vue. Sep 17, 2018
logs Логи в директории проекта Jan 27, 2018
sites/s1 Обновленная базовая структура проекта, подробности в README Dec 4, 2017
.arclint Обновлены внешние зависимости. Oct 26, 2018
.babelrc Обновлены внешние зависимости. Oct 26, 2018
.env.example Обновлены настройки стандартного окружения - ./vendor/bin/jedi env:in… Oct 26, 2018
.eslintrc Обновлены внешние зависимости. Oct 26, 2018
.gitignore Добавлен пакет `vlucas/phpdotenv` Jan 21, 2018
.jedi.php Добавлен пакет `notamedia/console-jedi` Jan 21, 2018
.stylelintrc Обновлены внешние зависимости. Oct 26, 2018
README.md В вики добавлена информация о версионировании Mar 12, 2018
composer.json Обновлены внешние зависимости. Oct 26, 2018
deploy.php Исправлена работа команды очистки кеша через Deployer (#11) Oct 26, 2018
hosts.yml.example Файл-пример для настройки хостов Deployer Mar 28, 2018
migrator Include iblock module (#9) May 3, 2018
package.json Обновлены внешние зависимости. Oct 26, 2018
postcss.config.js Обновлены внешние зависимости. Oct 26, 2018
ruleset.xml Обновлены внешние зависимости. Oct 26, 2018
webpack.config.js Обновлены внешние зависимости. Oct 26, 2018

README.md

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