Команды разработки (dev) 
Стандартные команды Битрикс для разработки: генерация метаданных для IDE и создание структуры директорий в существующем модуле.
Краткая справка 
| Команда | Что делает | Важно знать | 
|---|---|---|
dev:locator-codes | Генерирует .phpstorm.meta.php для автодополнения Service Locator | Требует существующий модуль | 
dev:module-skeleton | Создаёт только поддиректории в /lib существующего модуля | ⚠️ НЕ создаёт модуль с нуля! Только папки в уже существующем модуле | 
Создание модуля
Для создания нового модуля используйте ручное создание структуры + команды make:* для генерации компонентов. См. раздел Создание нового модуля с нуля
dev:locator-codes 
Генерирует файл .phpstorm.meta.php для автодополнения Service Locator в PhpStorm.
Синтаксис 
php bitrix.php dev:locator-codes <module> [code]Аргументы 
module- ID модуля для генерации метаданныхcode- код для генерации (необязательный параметр)
Опции 
--show- выводит содержимое в консоль без сохранения файла
Примеры использования 
# Генерация файла метаданных для модуля main
php bitrix.php dev:locator-codes main
# С указанием кода
php bitrix.php dev:locator-codes iblock bitrix_iblock_locator_codes
# Вывод в консоль (без сохранения)
php bitrix.php dev:locator-codes main --show
# Сохранение в произвольный файл
php bitrix.php dev:locator-codes main --show > ./my/custom/path/.phpstorm.meta.php
# Для других модулей
php bitrix.php dev:locator-codes catalog
php bitrix.php dev:locator-codes saleЧто делает команда 
Команда создает файл метаданных .phpstorm.meta.php, который помогает PhpStorm:
- Распознавать сервисы из Service Locator'а Битрикс
 - Предоставлять автодополнение для методов
 - Улучшать навигацию по коду
 - Предоставлять подсказки по типам
 
Где сохраняется файл 
По умолчанию файл сохраняется в корне модуля:
/bitrix/modules/<module>/.phpstorm.meta.phpПример сгенерированного файла 
<?php
namespace PHPSTORM_META {
    registerArgumentsSet('service_locator_services',
        'main.user',
        'main.application',
        'iblock.element',
        // ... другие сервисы
    );
    
    expectedArguments(
        \Bitrix\Main\DI\ServiceLocator::get(),
        0,
        argumentsSet('service_locator_services')
    );
}dev:module-skeleton 
ВАЖНО
Эта команда НЕ создаёт модуль с нуля. Она только создаёт структуру поддиректорий внутри уже существующего модуля в папке /lib.
Перед использованием команды необходимо вручную создать базовую структуру модуля.
Создаёт структуру поддиректорий в папке /lib существующего модуля.
Синтаксис 
php bitrix.php dev:module-skeleton <module> [dir]Аргументы 
module- ID существующего модуля (формат:vendor.module)dir- название поддиректории для создания в/lib(необязательный параметр)
Как это работает 
Команда:
- Проверяет существование модуля в 
/bitrix/modules/<module>/или/local/modules/<module>/ - Если модуль не найден - выдаёт ошибку: "No such module"
 - Если модуль найден - создаёт поддиректории в 
/lib/[Dir]/ 
Правильная последовательность создания модуля 
# 1. Сначала создайте базовую структуру модуля вручную
mkdir -p /local/modules/my.custom.module/lib
mkdir -p /local/modules/my.custom.module/install
# 2. Теперь можно использовать команду для создания поддиректорий
php bitrix.php dev:module-skeleton my.custom.module EntityПримеры использования 
# ❌ НЕ РАБОТАЕТ - модуль не существует
php bitrix.php dev:module-skeleton my.custom.module
# Ошибка: No such module
# ✅ РАБОТАЕТ - сначала создаём модуль
mkdir -p /local/modules/my.custom.module/lib
php bitrix.php dev:module-skeleton my.custom.module
# ✅ Создание поддиректории Entity в существующем модуле
php bitrix.php dev:module-skeleton my.custom.module Entity
# Создаст: /local/modules/my.custom.module/lib/Entity/
# ✅ Создание вложенной структуры
php bitrix.php dev:module-skeleton my.custom.module Controller/Api
# Создаст: /local/modules/my.custom.module/lib/Controller/Api/Что на самом деле создаёт команда 
Команда создаёт только пустые директории в /lib:
/local/modules/vendor.module/lib/[Dir]/Команда НЕ создаёт:
- ❌ Файл 
install/index.php - ❌ Файл 
install/version.php - ❌ Файл 
include.php - ❌ Файл 
options.php - ❌ Языковые файлы
 - ❌ Базовую структуру модуля
 
Продвинутые сценарии 
Автоматическое обновление метаданных после установки модулей 
#!/bin/bash
# Хук для обновления метаданных после установки модуля
MODULE_ID="$1"
if [ -z "$MODULE_ID" ]; then
    echo "Использование: $0 <module_id>"
    exit 1
fi
cd /var/www/bitrix
# Установить модуль
php bitrix.php module:install "$MODULE_ID"
# Сгенерировать метаданные
php bitrix.php dev:locator-codes "$MODULE_ID"
# Очистить кеш
php bitrix.php cache:clear
echo "Модуль $MODULE_ID установлен, метаданные обновлены"CI/CD: генерация метаданных при деплое 
#!/bin/bash
# Скрипт деплоя с генерацией метаданных
cd /var/www/bitrix
# Обновить код
git pull origin master
# Установить зависимости
composer install
# Обновить метаданные для кастомных модулей
for module in /local/modules/company.*; do
    if [ -d "$module" ]; then
        MODULE_ID=$(basename "$module")
        echo "Обновление метаданных: $MODULE_ID"
        php bitrix.php dev:locator-codes "$MODULE_ID"
    fi
done
# Очистить кеш
php bitrix.php cache:clear
echo "Деплой завершен"Troubleshooting 
Метаданные не генерируются 
Проблема: Файл .phpstorm.meta.php не создается
Решения:
- Проверьте права доступа к директории модуля
 - Убедитесь, что модуль существует и установлен
 - Используйте опцию 
--showдля проверки вывода - Проверьте логи PHP
 
PhpStorm не видит автодополнение 
Проблема: После генерации метаданных автодополнение не работает
Решения:
- Перезапустите PhpStorm
 - Invalidate Caches: File → Invalidate Caches → Invalidate and Restart
 - Убедитесь, что файл 
.phpstorm.meta.phpнаходится в корне модуля - Проверьте синтаксис сгенерированного файла
 
Ошибка "No such module" 
Проблема: При выполнении dev:module-skeleton выдаётся ошибка "No such module"
Причина: Команда ищет уже существующий модуль. Она не создаёт модуль с нуля.
Решение:
- Сначала создайте базовую структуру модуля вручную:
 
mkdir -p /local/modules/my.custom.module/lib
mkdir -p /local/modules/my.custom.module/install- Только потом используйте команду:
 
php bitrix.php dev:module-skeleton my.custom.module EntityКоманда создаёт пустые директории 
Проблема: Команда создаёт только пустые папки без файлов
Причина: Это нормальное поведение. Команда dev:module-skeleton создаёт только структуру директорий в /lib.
Решение:
- Файлы модуля (install/index.php, include.php и т.д.) создавайте вручную
 - Или используйте команды 
make:*для генерации компонентов, контроллеров и ORM-классов 
Полезные советы 
💡 dev:module-skeleton - не создаёт модуль - команда только делает поддиректории в существующем модуле
💡 Создавайте модули вручную - используйте скрипты для автоматизации создания базовой структуры
💡 Генерируйте метаданные регулярно - обновляйте после установки новых модулей командой dev:locator-codes
💡 Используйте make-команды - для генерации компонентов, контроллеров и ORM используйте make:*
💡 Интегрируйте в CI/CD - автоматизируйте генерацию метаданных при деплое
💡 Следуйте PSR-4 - размещайте классы в /lib с правильным namespace
💡 Версионируйте модули - обновляйте версию в install/version.php при изменениях
Смотрите также 
- Команды make - создание компонентов, контроллеров и ORM-классов
 - Команды модулей - установка и управление модулями
 - Официальная документация Битрикс по созданию модулей