Инструмент для комфортной разработки проектов под управлением 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
Хорошо было бы проверять необходимые условия для работы битрикс, вдруг какое-нибуть расширение забыли поставить