Инструмент для комфортной разработки проектов под управлением 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.Наши куски кода, какие-то модули, ресурсы, шаблоны и прочее очень полезное при работе сайта далее буду называть фикстурами.Каждая отдельная директория внутри
fixtures, это маленький независимый проект, который можно накатить по вверх базовой системы. В примере на картинке у меня 3 таких фикстуры (bitrix, bitrix-debug, kavsm )В папке
bitrixя храню дополнительные модули, устанавливаются вместе с базовой системой, и мне не приходится тритить время на очередной поиск и загрузку и установку.В папке
bitrix-debugя храню код, для отладки тех мест ядра, которые сходу сложно понять,В папке
kavsmя храню код моего текущего проектаСтруктура файлов каждой фикстуры полностью повторяет структуру битрикс, за исключение того что там нет "лишних файлов".И эти файлы по команде копируются из папки фикстуры в папку
webв корне проекта.
Чтобы далее автоматически установить необходимые вам модули, запустите:
bin/bitapp bitrix:dump:fixture "название папки"
Внимание! Bitrix еще не установлен, поэтому добавление файлов самого проекта на этом шаге, может привести к запиранию их при установке.
Многие проекты хостятся на Web-хостингах. Из-за ряда ограничей, на некоторых хостингах данный проект нe получится развернуть. Я думаю предусмотреть отдельную комнду для сборки проекта.
Планируемые возможности:
Добавление, удаление инфоблоков, типов инфоблоков.
Генерация файлов для решений, шаблонов, модулей
Добавление стандартых сценариев для работы с 1С-Битрикс с помощью behat
Хорошо было бы проверять необходимые условия для работы битрикс, вдруг какое-нибуть расширение забыли поставить