32  /  36

Советы

Просмотров: 39480
Дата последнего изменения: 18.01.2021
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5

  Кодировки и языковые файлы

  1. Всегда выносите русский текст в языковые файлы, иначе в будущем возможны проблемы с кодировками. Например, при установке модуля внутри него смена кодировки происходит только для языковых файлов. Таким образом, устанавливая сайт в utf-8 и оставив русский текст в файле /install/components/пространство имен/имя компонента/templates/.default/template.php вы в итоге получите набор иероглифов.
  2. При разработке/тестировании в Windows предварительно снимите флаг скрытости у всех файлов. При копировании файлов, начинающихся с точки (такие файлы считаются скрытыми в Unix подобных ОС) с сетевого диска Windows ставит им флаг «скрытый». При наличии этого флага при установке сайта под Windows файлы не обрабатываются. Перед сборкой архива с дистрибутивом желательно также предварительно проверить файлы на флаг скрытости.
  3. При создании решения проверяйте соответствие кодировки файла .htaccess в вашем решении и в системе. При установке решения может произойти затирание этого файла, созданного системой. В результате этого могут не создаваться инфоблоки. Решения лучше создавать в Windows-1251, как и сам Bitrix Framework.

  Ядро Bitrix

  1. При разработке решения для Bitrix Marketplace не оставляйте в публичной части системные файлы, которые могут перезаписать уже имеющиеся файлы у клиента. К ним относятся:
    • файл urlrewrite.php;
    • папка /upload;
    • любые системные файлы из папки /bitrix, в том числе шаблон .default;
    • Компоненты/гаджеты вне собственного пространства имен.
    Если есть необходимость все же добавить что-либо в системную папку, то разместите эти файлы отдельно и делайте предварительно проверку на существование.
  2. При разработке самостоятельного решения с поддержкой многосайтовости выносите добавляемое в папку /bitrix в отдельную папку и копируйте вручную без перезаписи. Иначе при переносе публичной части при установке второго сайта у вас получится лишний набор файлов в /папка_сайта/bitrix/.
  3. При разработке самостоятельного решения не добавляйте никаких файлов в ядро Bitrix Framework напрямую. Если все же необходимо внести дополнительные файлы в ядро (например, свой шаблон бизнес-процесса), то такой файл нужно поместить внутри мастера создания сайта и переносить через копирование. В противном случае при переносе решения на более новую редакцию Bitrix Framework есть вероятность потери добавленных файлов.

  Инфоблоки, пользователи и свойства

  1. Никогда напрямую не используйте ID инфоблока (пользователя, группы, значения свойства типа «список») где-либо, кроме файлов публичной части. В противном случае возможна ситуация, когда компонент/шаблон/метод класса обращается к данным по одному ID, а получает либо совершенно другие данные, либо их полное отсутствие. Возможные варианты решения:
    • Для компонентов и шаблонов передавать ID используемых инфоблоков/пользователей/групп/свойств через параметры вызова (описываются в файле .parameters.php)
    • Для собственных классов передавать необходимые ID инфоблоков/пользователей/групп/свойств либо при создании объекта класса, либо в качестве параметров его методов.
    • Если ID нигде не передается, то определять их по каким-либо признакам (обычно это символьный код (CODE) или внешний код (XML_ID)).
  2. Внутри мастера установки проверяйте, что все прямые использования ID инфоблоков (пользователей, групп, значений свойств типа «список») заменены макросами. Макросы имеют вид #имя_макроса# и должны заменяться на этапе установки инфоблоков.
  3. Убедитесь, что все макросы заменяются во время установки решения. Для замены можно использовать следующие функции:
    • CWizardUtil::ReplaceMacros(путь_к_файлу, Array("имя_макроса" => значение_для_замены));
    • WizardServices::ReplaceMacrosRecursive(путь_к_корневой_папке, Array("имя_макроса" =>значение_для_замены));

  Многосайтовость

Если предполагается возможность установки вторым/N-ным сайтом, то в начале всех абсолютных путей необходимо либо подставлять системную константу SITE_DIR, либо макрос (например, #SITE_DIR#), заменяемый в процессе установки решения.

Шаблоны

  1. Если решение включает несколько шаблонов, следите, чтобы названия шаблонов компонентов в них были одинаковыми. Публичная часть одна и не известно какой из шаблонов сайта выберет пользователь.
  2. Для уменьшения итогового размера решения выносите все одинаковые шаблоны компонентов в некоторую общую папку. В самостоятельном решении это может быть шаблон .default. В решении для Bitrix Marketplace — просто отдельная папка, из которой общие шаблоны компонентов должны быть скопированы на этапе установки шаблона сайта.

  Шаблон Битрикс24 и фрейм

При разработке приложений на основе шаблона Битрикс24, учтите, что этот шаблон нельзя открывать во фрейме.


10
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии