Sergey Leshchenko. Якщо код часто використовується повторно, то його краще винести в модуль. Витратити на це зайві годину-дві, але зате не ловити потім фатальні баги відразу на всіх проектах одночасно, коли хтось, завдяки випадку або не знанню, вніс якісь специфічні зміни в цей код. І модуль винести в маркетплейс, щоб накочувати апдейти зручніше було.
створення модуля
Партнерські модулі відрізняються від стандартних модулів наступним:
- код модуля - повний код партнерського модуля, який задається в форматі: код_партнера.код_модуля.
Частина код_партнера постійна для партнера (задається в картці партнера). Частина код_модуля вводиться партнером при додаванні нового модуля. Ці коди повинні бути алфавітно-цифровими, але першим символом не може бути цифра, і код якимось чином повинен відповідати суті модуля. Наприклад, для модуля форуму бажано поставити код forum. Тоді повний код буде mycompany.forum. Використання точки для поділу id партнера і модуля необхідно, інакше ваш модулів не буде видно в списку встановлених рішень Marketplace, а потрапить в список системних модулів, що є некоректною ситуацією.
Важливо! Код модуля обов'язково повинен бути заданий в нижньому регістрі. інакше не буде працювати метод IncludeModule.
Код не повинен починатися з цифри - це може перешкодити встановленню модуля. Також забороняється використання підкреслення "_".
У клієнта ця інформація буде доступна в списку модулів.
Увага! Модуль необхідно створювати в кодуванні windows-1251, при установці його на сайт з кодуванням UTF-8 відбувається автоматична перекодування.
Пам'ятайте, що в Bitrix Framework прийнято, що версія не може бути рівною 0, тобто 0.0.1 - мінімальний номер версії.
Пам'ятайте, що тільки мовні файли з папки / ru / конвертуються в кодування сайту.
Інфоблоки або таблиці БД?
Максим місив. Інфоблоки відмінно підходять для прототипування і макетування функціоналу. На рівні свого застосування (модуля) робите прошарок, яка відповідає за зберігання даних і починаєте використовувати Інфоблоки.
Якщо ви упретеся в продуктивність або особливості роботи ІБ, то просто змініть найнижчий рівень. У моїй практиці такого поки не траплялося.
При створенні власних модулів у розробників часто виникає питання: при написанні власного модуля що доцільніше: використання Інфоблоки або власні таблиці? Відповідь на це питання залежить від розв'язуваної задачі. Наявність в Bitrix Framework Інфоблоки не означає обов'язковості їх використання для реалізації своїх модулів.
Інфоблоки - це універсальність. З цієї причини:
- Інфоблоки часто надлишкові за своїми можливостями;
- При використанні Інфоблоки розробник може працювати з модулем як зі звичайним компонентом, не потрібно допрацьовувати API (і описувати його).
Власні таблиці - це перш за все продуктивність. Використовуючи свої таблиці, розробник: