Множественное поле сущности HL блока Битрикс

Стандартный генератор сущностей Битрикс не умеет в множественные поля.

Совсем недавно столкнулся со следующей ситуацией:

  • есть HL блок Document с множественным полем типа «Текст»
  • для этого HL блока создана сущность через стандартный генератор сущностей доступный в разделе Производительность -> Таблицы
  • на выходе получаем описание этого поля в виде Bitrix\Main\ORM\Fields\TextField

При попытке прочитать значение поля через сущность (DocumentTable) получаем вместо массива значений строку «Array». Создание и обновление значений также не проходит. Как же быть?

Читать далее

PHP CodeSniffer. Пишите красивый код!

Эксклюзив от автора сайта!

С помощью этого инструмента ваш код всегда будет соответствовать выбранным стандартам кодирования.

Работа со статическим анализатором кода PHP_CodeSniffer на практике:

  • Что такое PHP_CodeSniffer
  • Подготовка проекта
  • Установка PHP_CodeSniffer с помощью Composer
  • phpcs и phpcbf
  • Запуск из терминала
  • Настройка PHP_CodeSniffer в PhpStorm
  • Создание и настройка файла конфигурации phpcs.xml
  • Создание Makefile и команд запуска проверки и исправления кода
Читать далее

Ajax контроллеры в Битрикс

Контроллеры — это часть MVC архитектуры, которая отвечает за обработку запроса и генерирование ответа. Сразу оговоримся, что дальше речь пойдет про компоненты-контроллеры в контексте Bitrix Framework.

Битрикс-контроллер принимает от клиента запрос и возвращает JSON с результатом или ошибкой. Классы-контроллеры содержат одно или несколько методов-действий и являются надстройкой над обычными компонентами, поэтому их нужно размещать в файле class.php компонента.

Читать далее

Добавлять или нет composer.lock в .gitignore?

К сожалению, на собеседовании на вопрос “Чем отличаются команды composer install и composer update?” мы слишком часто слышим ответ “Не знаю” или, ещё хуже, “Ничем”.

В этой статье мы расскажем, чем отличается install от update и почему так важно не добавлять composer.lock в .gitignore.

Создаю проект.

Объявляю зависимости в composer.jsoncomposer update или composer install? Сделаю так: в первый раз запущу install, потом буду update, логично же? Вижу файл composer.lock. Ну ок, наверное, это что-то нужное, залью его.

После очередного запуска composer update опять изменился чёртов composer.lock. А в прошлый раз так вообще конфликт из-за него при слиянии был. Да пошел он в .gitignore!

Какой же этот Composer долгий… И памяти жрёт при обновлении…

Время заливать проект на продакшн. Эм… какую команду прописать в скрипт обновления площадки? Ну пусть будет composer install. После очередного обновления продакшн фатально падает. Выясняется, что пакеты на сервере не обновляются. Так и знал, что install не сработает. Меняю на update.

Через какое-то время после очередного деплоймента продакшн снова фатально падает. Какого..?

Читать далее

Установка и настройка Bitrix на Devilbox

Если вам надоел OpenServer, XAMPP и прочие LAMP окружения и хочется, чтобы на рабочей машине сайт крутился в Docker контейнерах, обратите внимание на Devilbox!

В этом видео я на практике показываю, как овладеть этим LAMP конструктором и произвожу установку свежей версии CMS Битрикс на него. Бонусом идет базовая настройка — чтобы локальный сайт работал быстро.

Читать далее