Задача — вынести часть логики в собственный модуль. Модули интересны тем, что можно делегировать ему часть или всю ответственность по какой то логике, они легко переносимы между экземплярами битрикса, например, между тестовой и прод версией. Можно сравнить их с плагинами в WordPress. При написании модуля нужно помнить про S — single responsibility — не нужно пихать туда все.
Что будет делать текущий модуль?
- Выводит список всех пользователей
Операции возможные с модулем:
- его можно удалить установить/удалить
- его можно будет подключить как любой модуль
- вызвать класс модуля с собственным пространством имен
для базового туториала достаточно
Структура файлов описана здесь https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2823&LESSON_PATH=3913.3435.4609.2823
Из всего этого для базы и запуска понадобится такая структура
Ссылка на пример: https://github.com/Carsak/bitrix-custom-module
Все работы делаю в папке local — это папка специально создана для пользовательского кода.
Все модуля находятся в папке modules. Название модуля — almat.su, almat — имя вендора, затем точка и идет название модуля su. Файл установки находится в install/index.php. В тестовом модуле происходит лишь регистрация модуля, но в других сценариях здесь может находится создание таблиц, копирование файлов, создание пользовательских полей. То есть создание всего, что потребуется для дальнейшей работы модуля.
В папке lib могут находится классы. Неймспейс по умолчанию равен названию модуля, то есть almat.su превращается в Almat\Su
Первым делом нужно установить модуль:
Затем перед вызовом класса нужно подключить модуль стандартным путем
1 2 3 4 5 6 7 8 9 |
CModule::IncludeModule('almat.su'); $user = new \Almat\Su\User(); $rows = $user->getNameAndLastName(); print_r($rows); |
Что выведет
Array
(
[1] => Алмат Жандаулетов
[2] => Анонимный пользователь
)
Каркас для модуля готов
В последующих постах расскажу: как добавить свои контроллеры для модуля? как добавить пункт меню для нового модуля?