Почему нужно создавать модули?
Модули — это расширения для 1С-Битрикс, которые позволяют добавлять новый функционал, не изменяя ядро системы. Это важно по нескольким причинам:
- Обновляемость: ваш код остается независимым от стандартного функционала.
- Переиспользуемость: модуль можно установить на другой проект.
- Поддержка: удобно масштабировать и вносить изменения в готовый модуль.
Подготовка окружения
Прежде чем начать, убедитесь, что у вас есть:
- Доступ к файловой системе сайта.
- Возможность работать с админкой 1С-Битрикс.
- Среда для разработки (например, PHPStorm, VS Code).
- Базовые знания PHP и архитектуры Bitrix Framework.
Шаг 1. Создаем структуру модуля
Модули располагаются в папке /local/modules/
. Это лучший вариант, так как при обновлении системы
ядро (/bitrix/modules/
) может быть перезаписано.
Пример структуры модуля:
/local/modules/my.module/
├── install/
│ ├── step.php # Логика установки
│ ├── uninstall.php # Логика удаления
│ ├── version.php # Версия модуля
│ ├── events.php # Обработчики событий
├── lang/
│ └── ru/
│ └── install.php # Локализация
├── lib/
│ └── myclass.php # Основная функциональность
├── options.php # Настройки модуля
├── include.php # Подключение функционала
├── prolog.php # Инициализация
└── description.php # Описание модуля
Шаг 2. Описание модуля
Создаем файл description.php
с информацией о модуле. Этот файл описывает название, автора и версию модуля.
<?php
$arModuleVersion = [
"VERSION" => "1.0.0",
"VERSION_DATE" => "2024-11-01"
];
$arModuleDescription = [
"NAME" => "Мой модуль",
"DESCRIPTION" => "Расширение для добавления новой функциональности",
"PARTNER_NAME" => "Моя компания",
"PARTNER_URI" => "https://example.com",
];
Шаг 3. Логика установки и удаления
Файлы установки и удаления размещаются в папке install
.
<?php
use Bitrix\Main\ModuleManager;
class my_module extends CModule
{
public function DoInstall()
{
ModuleManager::registerModule($this->MODULE_ID);
}
public function DoUninstall()
{
ModuleManager::unRegisterModule($this->MODULE_ID);
}
}
В этом примере регистрируется модуль при установке и удаляется при деинсталляции.
Шаг 4. Реализация функциональности
Создайте папку lib
, где будет храниться основная логика модуля. Используйте пространство имен
для удобства работы и автозагрузки.
<?php
namespace My\Module;
class MyClass
{
public static function doSomething()
{
return "Работает!";
}
}
Добавьте автозагрузку в include.php
:
<?php
Bitrix\Main\Loader::registerAutoLoadClasses(
'my.module',
[
'\My\Module\MyClass' => 'lib/myclass.php',
]
);
Теперь вы можете использовать этот класс в своем проекте:
use My\Module\MyClass;
echo MyClass::doSomething();
Шаг 5. Добавляем локализацию
Создайте папку lang
для перевода строк, чтобы модуль был многоязычным.
lang/ru/install.php:
$MESS['MY_MODULE_NAME'] = "Мой модуль";
$MESS['MY_MODULE_DESC'] = "Описание моего модуля";
Используйте эти сообщения в вашем модуле:
$MESS["MY_MODULE_NAME"];
Шаг 6. Регистрация модуля
Зайдите в админку 1С-Битрикс: Marketplace → Установленные решения → Установка модуля.
Если вы все сделали правильно, ваш модуль появится в списке. Установите его и проверьте работу.
Советы по разработке
- Следуйте стандартам: используйте автозагрузку классов, пространства имен и работу с базой через ORM (D7).
- Изолируйте логику: избегайте привязки к глобальным переменным.
- Тестируйте: убедитесь, что модуль корректно устанавливается и удаляется.
Заключение
Создание собственного модуля для 1С-Битрикс открывает множество возможностей для кастомизации системы. Это удобный способ структурировать код и сделать его переиспользуемым. Надеюсь, это руководство поможет вам с первого раза создать работающий модуль. Если у вас есть вопросы, пишите в комментариях или делитесь своими успехами!
Happy coding!