Bitapp

Инструмент для комфортной разработки проектов под управлением 1С-Bitrix CMS.

This project is maintained by nonlux

Обязательно для ознакомления

Я не являюсь членом команды 1С-Bitrix, поэтому:

Проект находится в стадии разработки, могут быть внесены критические изменения, нарушающие функционирование продукта.

Я постараюсь вести подробный лог изменений, чтобы могли использовать данное решение уже сейчас.

Установка

1 Установите Composer

2 Создайте новый проект:

composer create-project nonlux/bitapp-project  path-to-project -sdev

3 Перейдите в директорию проекта

4 Добавьте в composer.json следующее:

require {
...
"bitrix/bitrixcms-standard":"dev-master",
...
}

5 Обновите зависимости:

 composer update

Я специально не добавил в проект прямую зависимость от исходников битрикс, что бы в следующих релизах можно было изменить версию битрикс.

6 Развертите исходиники битрикс в web-директории проекта

bin/bitapp bitrix:dump:standard

У нас в проекте появилась директория web. Это и есть домашняя директория для сайта. Настройте свой веб-сервер для работы с ней и увидете предложение установить битрикс, но не делайте этого.

7 Добавьте модули, которые постоянно используете

На этом я остановлюсь подробнее. Моя идея организации разработки под битрикс заключается в том, чтобы исключить "лишние" файлы из проекта. Лишние файлы - файлы которые поставляются официальными разработчикам ядра и в "будущем" модулей.

Ввиду такого, что у битрикс очень сложная структура файлов, и в определеных обстаятельствах нам может понадобится доступ к "глубоким" директориям проекта, очень сложно составить какой-либо универсальный "ignore" файл для систем контроля версии.

Поэтому моя идея: Исключим весь проект!

В место хранения большого проекта, я решил хранить только то, что нам действительно нужно. И реализовал простую систему накатывания изменений поверх системы. В итоге храня в репозитории только свои собственные файлы, при его разворачивании получаем готовый сайт на битрикс.

Хратит теории, давайте перейдем к практике.

fixtures folder

В корне проекта есть директория fixtures.Наши куски кода, какие-то модули, ресурсы, шаблоны и прочее очень полезное при работе сайта далее буду называть фикстурами.

Каждая отдельная директория внутри fixtures, это маленький независимый проект, который можно накатить по вверх базовой системы. В примере на картинке у меня 3 таких фикстуры (bitrix, bitrix-debug, kavsm )

В папке bitrix я храню дополнительные модули, устанавливаются вместе с базовой системой, и мне не приходится тритить время на очередной поиск и загрузку и установку.

В папке bitrix-debug я храню код, для отладки тех мест ядра, которые сходу сложно понять,

В папке kavsm я храню код моего текущего проекта

Структура файлов каждой фикстуры полностью повторяет структуру битрикс, за исключение того что там нет "лишних файлов".И эти файлы по команде копируются из папки фикстуры в папку web в корне проекта.

Чтобы далее автоматически установить необходимые вам модули, запустите:

bin/bitapp bitrix:dump:fixture  "название папки"

Внимание! Bitrix еще не установлен, поэтому добавление файлов самого проекта на этом шаге, может привести к запиранию их при установке.

Планы развития проекта

Сборка и Деплой

Многие проекты хостятся на Web-хостингах. Из-за ряда ограничей, на некоторых хостингах данный проект нe получится развернуть. Я думаю предусмотреть отдельную комнду для сборки проекта.

Планируемые возможности:

Работа с инфоблокам

Добавление, удаление инфоблоков, типов инфоблоков.

Генерация шаблонного кода

Генерация файлов для решений, шаблонов, модулей

Behat features

Добавление стандартых сценариев для работы с 1С-Битрикс с помощью behat

Проверка начальных требований

Хорошо было бы проверять необходимые условия для работы битрикс, вдруг какое-нибуть расширение забыли поставить