Information
- Rating
- 7,742-nd
- Location
- Курган, Курганская обл., Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Fullstack Developer, Software Architect
Senior
PHP
Docker
Database
OOP
Algorithms and data structures
Object-oriented design
Database design
Software development
Designing application architecture
Для обновления функционала изнутри контейнера, чтобы встроить это в пайплайн можно использовать CLI команду встроенную в продукт "update:modules", с её помощью можно запускать обновление только до конкретных указанных версий (типа как composer.json, только updates.json).
Детальной документации на эту команду к сожалению пока что нет, можете с помощью встроенного в команду хелпа посмотреть примеры использования.
Подробнее про Bitrix CLI можно посмотреть туц: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=11685
А какая с ними проблема? Они также являются частью исходного кода проекта и живут рядом с остальными исходниками.
Передал информацию коллегам.
Также стоит упомянуть, что различные проблемы и предложения лучше сразу оформлять в виде issue или pull request в самом репозитории. При таком подходе и проблемы и их решения будут ближе к коду и можно будет предметно разговаривать.
По хорошему ваши пожелания нужно озвучить в поддержку, чтобы они зафиксировали ваше обращение в качестве заявки на фичу (а возможно и добавили в уже существующее), и чем больше будет обращений на одну тему, тем сильно больше вероятность, что мы начнём делать её ;-)
Прямо сейчас вы самостоятельно можете зарегистрировать свои роботы через REST и навешивать на них необходимую функциональность: https://apidocs.bitrix24.ru/api-reference/bizproc/bizproc-robot/index.html
Если гибкости реста не хватает для облака, то тут уже стоит задумать про перевоз клиента в коробку.
Как видите на вашу проблему есть как минимум 2 решения прямо сейчас, нужно проявить лишь чуть больше прыткости :)
Да, команды работают на базе пакета
symfony/command
, но в поставке этот пакет не поставляется, нужно установить зависимость через композер, по ссылке выше есть инфа на этот счет.Уже вышли в main 24.100.0
Внутри продукта константа всегда
true
если подключен файл прологаmain/include/prolog_before.php
, но никогда не знаешь, чего можно ожидать от кастомных интеграцией :)Начиная с версии main,24.0.0 вы можете регистрировать свои команды через конфигурацию модуля ;-)
Дока: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=11685
Поверите если скажу что это действительно в работе? :-)
Тут скорее правильней задать вопрос вопрос про популяризацию CMS в целом, т.к. планов отчуждать отдельно фреймворк на текущий момент нет.
Данный блог мы как раз используем как один из инструментов общения с разработчиками и популяризации продуктов компании, в частности и фреймворка.
Также ведутся работы по переработке документации конкретно по фреймворку и CMS, чтобы документация стала более френдли к разработчикам.
Плюс не прекращается регулярная доработка ядра продукта, внедряем новые инструменты и технологии. В качестве спойлера могу сказать что в этом году подвезём пару-тройку хороших нововведенией, которые вероятно многие долго ждали ;-)
Отсутствия адекватного инструмента, это прям сильно тормозящий фактор :/
Неужели вендоры Android и iOS не могут дать нормальной тулзы?
Они хотя бы делают что-то в этом направлении? :D
Этот набор компонентов используется только для REST приложений, он коррелирует с имеющейся библиотекой внутри продукта.
Это был пример когда нужно вшивать какой-то кусок в какой-то SQL.
При желании можно использовать и
convertToDb
:Один раз, зато какой :) Тут я имел ввиду сам класс как кейс использования
forSql
.Если говорить про конструирование SQL запросов без ORM, даже банальных LIKE конструкций, то
convertToDb
не подойдёт, и там нужно использовать толькоforSql
:С таким примером соглашусь, что наличие замыкания имеет смысл и будет удобно.
Я не очень люблю когда в качестве аргументации приводят очень простые примеры, которые чаще всего далеки от жизни, поэтому не упустил возможности указать на это :)
Саму реализацию через коллбэк возьмём на заметку и возможно реализуем, спасибо!. Насколько знаю уже во всех фреймворках и ORM такая история есть, не будем отставать от устаревающих трендов :)
Если со всем соглашаться, то времени не хватит ни на ответы, ни на реализацию, поэтому приходится достаточно консервативно подходить ко всему новому :D
Такой экзотики из коробки нет :) В данном случае можно добавить свое поле:
Кастомное поле
Конкретно с JSON справляется: можно использовать поле
Bitrix\Main\ORM\Fields\ArrayField
, при сохранении/чтении будет выполнятся преобразование данных в/из JSON.Про работу с бинарными данными в статье упоминание есть.
На счет "прочих типов", тут уже нужна конкретика :)
Действительно, опечатка в статье. Спасибо!
Верное замечание, убрал по тексту использования термина, чтобы не путать умы юнных читателей :)
Раскрыл использование методов
convert*
детальнее ;-)Зачем, если исходники у нас всегда под рукой? :) Если серьезно, то проблема с докой и справочником API известная, мы ей занимаемся!
Завидую вашей способности читать чужие мысли, но в данном случае это лишь вопрос неверной терминологии, а не непонимания)
Не всегда стоит использовать
convertToDb
, вместоforSql
. В целом сам классSqlHelper
, является хорошим примером когда стоит использоватьforSql
.Если мы говорим про клиентский код, то тут да, почти всегда нужно использовать метод
convertToDb
, либо его конкретные реализации.Надеюсь мы оба понимаем, что это неправда ;) Обрезка происходит не "молча", а только в случае указания длинны в методе
convertToDbString
, либо при указании размера в ORM в некоторых классовBitrix\Main\ORM\Fields\*
.В случае ORM, вместо указания размера и обрезки, можно использовать
Bitrix\Main\ORM\Fields\Validators\LengthValidator
Более подходящего термина к сожалению не нашлось, т.к. в любом случае это именно подготовка SQL запроса.
Очень жаль, что вы не заметили блок кода который следует сразу за этой фразой :(
Пока вы пишите простой код на 2 строки, то действительно выглядит лучше. Если речь уже про более большие куски кода, что замыкание, что try/catch выглядят одинаково ;)
Дизайн - сущность, дизайнить - процесс ;-)
UserStoryMapping тут не рассматривается, потому что он сильно хуже данных подходов? Кажется он самый попсовый :)
Ясно, понятно. В целом могли сразу ответить что сами не понимаете о чем пишите ;-)
Много буковок и ни одной картинки :( Диаграмма C4 это про системный дизайн или про архитектуру?
Можете в картинках привести пример: вот схемка архитектуры, вот схемка системного дизайна?
Или разница вообще не в схемках? :)
Спасибо за развернутый ответ!