Файл про устройство репозитория. Опорные точки модуля — в CLAUDE.md, процесс — в CONTRIBUTING.md, сборка — в build-and-install.md.
В статье:
Файл про устройство репозитория. Опорные точки модуля — в CLAUDE.md, процесс — в CONTRIBUTING.md, сборка — в build-and-install.md.
Composer разворачивает в целевой каталог корень пакета целиком и подкаталоги
выбирать не умеет. Поэтому lib/, install/, lang/ лежат прямо в корне
репозитория, рядом с build.sh и .github/.
Плата за это — два списка в шапке build.sh:
Файл, не попавший ни в один список, роняет сборку. Тот же список продублирован
в .gitattributes через export-ignore; списки обязаны совпадать, сверяется
автоматически, см. check_gitattributes.
lib/ обязателенBitrix\Main\Loader отображает класс в путь строчными, разбирая первые два
сегмента namespace как id модуля: Shef\Problems\Main\Utils ищется как
bitrix/modules/shef.problems/lib/main/utils.php. Поэтому свой namespace в
registerNamespace не нужен — там только Monolog. Отсюда же и трейты в
lib/factory/trait/: сегмент Trait в namespace PHP 8 принимает.
На macOS заглавная буква сходит с рук, на боевом Linux класс просто не найдётся.
Проверяется в build.sh, check_lowercase, и в tests/autoload_test.php.
У vendor/ соглашение своё — PSR-4 с заглавными, путь задаёт .settings.php.
install/js/shef-problems/monolog-pr-html/ -> /bitrix/js/shef-problems/monolog-pr-html/
install/js/shef-problems/monolog-pr-html-admin/ -> /bitrix/js/shef-problems/monolog-pr-html-admin/
Каталог модуля браузеру недоступен, поэтому стили копирует установщик — карта
в .settings.php, ключ installDir. Расширения находятся ядром по имени
shef-problems.monolog-pr-html: каталог через дефис — требование имён
расширений. Имена живут в одном месте, Constants::EXTENSION_PR_HTML и
EXTENSION_PR_HTML_ADMIN; сходимость с раскладкой проверяет
tests/assets_test.php.
style.min.css рядом со style.css — минифицированная копия, её ядро берёт
при включённой оптимизации css. Правите стиль — пересоберите и её.
*.min.min.* — мусор сборщиков, его отсекает .gitignore.
Документация живёт в репозитории. В поставке остаётся только README.md — как
readme пакета, — и все ссылки из него ведут на GitHub. Скриншоты, которые до
2.0.0 раскладывались в /bitrix/images/shef.problems, ушли вместе с
документацией; каталог на обновлённых порталах убирает деинсталляция.