33  /  37

Советы

Просмотров: 3605 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 22.09.2015
  • Кодировки и языковые файлы
  • Ядро Bitrix
  • Инфоблоки, пользователи и свойства
  • Многосайтовость
  • Кодировки и языковые файлы

    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 — просто отдельная папка, из которой общие шаблоны компонентов должны быть скопированы на этапе установки шаблона сайта.
    9
    Курсы разработаны в компании «1С-Битрикс»

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