Как стать автором
Обновить

Комментарии 18

интересно, когда в d7 будет update? =)

я уже перестал надеяться

Вот только если запросить так несуществующее свойство все уйдет в тайм-аут по переполнению) а массовый апдейт есть)

Если работаем с getList класса \Bitrix\Iblock\Elements\Element*****Table и в select передадим неизвестное свойство, то отдаст ошибку "Unknown field definition". Про массовый апдейт было бы интересно почитать

Ну с инфоблоками через эту фигню было такое зависание. А для массовых действий - fetchCollection и ее уже сохранять)

Ну или через гетлист проблем меньше, я обычно через кваери юзаю. Хотя для быстрых кусков использую доступ к таблицам, тоже d7 query) Впрочем d7 для инфблоков все еще сырой, хотя бы на момент написания статьи.

И да, сейчас 2023 год)

Всё-таки есть что-то неизменное в наше время. Во всём мире уже началась эпоха ИИ, а авторы битрикса всё так же мощно пытаются в рефакторинг...

Не вижу уже давно, что они пытаются в рефакторинг. Сейчас мне кажется, что России мало хороших продуктов для разработки ПО, каких-то платформ, SDK. Возможно, я ошибаюсь. Поэтому надо писать самим

Я, наверное, тупой (не сарказм), но не могу понять "от слова совсем", зачем современные битриксоиды так усиленно надувают щеки на тему D7, когда это *** уже 100500 существует, но до сих пор не обладает полным функционалом оригинального ядра, а "1C-Bitrix", продавая свой продукт за не очень гуманные деньги (где-то тихо стоит спокойно наблюдает за этим беспределом wordpress), не способна написать адекватную документацию. За что деньги платит потребитель? (вопрос риторический)

Адекватная документация - это уровень оф. доков PHP, т.е. с релевантными примерами и объяснениями, что этот медод делает, а не тот бред, который битриксоиды называют документацией, когда релевантные примеры с объяснениями работы очередного "черного ящика" приходится искать с фонарями по всему интернету, который, в данном случае (упс) ограничен русскоязычным сегментом.
Да, еще забыл про "магию", когда где-то что-то появляется, исполняется, инклдудится и т.п. магическим образом, а инфа об этом если и есть, то разбросана по 100500 страницам оф. сайта.

Про надувание щек - это, например, "мы пишем на ядре D7" в некоторых вакансиях. Выглядит, как дешевые понты.


Старое ядро - полнофункциональное. D7 - недопиленный огрызок, недопиленность которго уже давно вошла в хроническую стадию.

P.S.: Я не против битрикса как такового. Сам сейчас его ковыряю.

P.P.S: Это мнение НЕ профессионала, а так - персонажа типа "мимо пробегал".

Так как на него есть спрос, работу начинающему разрабу с низким порогом входа (битрикс) найти очень легко. У меня так было 3 года назад, сейчас много читаю, чтобы учить best practice (laravel, symfony)

Почему не используйте для построения запросов query, в котором строится запрос с помощью addselect(), where() и т.д.? Можно также пользоваться методом getquery() в конце построителя запроса, чтобы проанализировать, что произойдет в запросе, чтобы уже после делать выбор какой fetch использовать, fetchcollection, fetchobject или fetchall?

В этой статье я не описывал класс Bitrix\Main\Entity\Query, так как хотел показать именно эти способы обращения к сущностям инфоблоков и не ставил задачу рассказать о нём. Но я думаю будет правильно о нём рассказать в ближайшем будущем.

Всем кто ещё работает с битриксом могу только пожелать поскорее свичнуться на ларавель или симфони. Сам 7 лет просидел на нем из за лени, но собравшись с силами ушел в ларавел и безумно этому рад.

Если хочется добавить немного приятности в работу с бд в Битриксе, рекомендую попробовать вот этот пакет (вторую его часть)

https://github.com/arrilot/bitrix-models

А d7 это какой то прикол. Скоро 10 лет будет как он появился и это все такой же мусор без документации.

Данная библиотека уже устаревшая и в разработке есть Query и ORM для инфоблоков, которые хорошо описаны в документации.

По поводу документации тоже не соглашусь. Да, у Laravel документация на много лучше. Но у битрикса для работы с ORM описано все что можно:
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&CHAPTER_ID=05748&LESSON_PATH=3913.3516.5748

Данная библиотека уже устаревшая

Это правда. Но что это меняет? Битрикс сам по себе устаревший

и в разработке есть Query и ORM для инфоблоков, которые хорошо описаны в документации.

Суть этой фразы не понял. Половина классов как не имели ORM представления так и не имеют. Сделать запрос в инфоблок можно и на чистом SQL это не проблема.

Старое апи позволяло нормально и удобно работать со всеми сущностями, а главное это было задокументировано с кучей примеров. Для работы с заказами до сих пор приходится ходить на сторонние сайты вместо офф. доки. Это нормально?

По поводу документации тоже не соглашусь. Да, у Laravel документация на много лучше. Но у битрикса для работы с ORM описано все что можно:

Я боюсь вы сами себе противоречите.
Назвать "это" хорошей докой у меня лично язык не повернется.

Ну и кстати она такая уже лет 5 точно, то есть развития просто 0.

Наконец-то, хоть какая-то инфа по этому d7, официалы не удосуживаются нормальную доку по нему запилить. Спасибо тебе автор, надеюсь она не последняя!)

Хотелось бы добавить, что $entityClass можно получить ещё следующим способом
$iblockId = 1;
$iblock = \Bitrix\Iblock\Iblock::wakeUp($iblockId);
$entityClass = $iblock->getEntityDataClass();

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории