Open north-leshiy opened 4 years ago
Есть предложение на методах CiblockElement делать @deprecated через некоторое время.
Сомнительная идея, в том плане что @deprecated
следует использовать лишь в том случае, когда метод будет удален, а следуя политики обратной совместимости такого ой как не предвидится.
К тому же, замена будет не равнозначная, так как ORM не реализует следующих возможностей:
Даже более того: реализация некоторых методов прямо противоположна концепции ORM
Многие из этих вещей реализуются новым API через связи и/или события. Некоторые в принципе должны быть вынесены и быть явными.
Платформа должна избавляться от монстров с избыточной зоной ответственности, это антипатерн.
Да, согласен что займет время, пока сделают достойные аналоги на все из перечисленного.
Но по прошествии времени очень хотелось бы забыть об этом кошмаре и меньше встречать это в проектах. По сути пост об этом когда выйдет более сильный инструмент - избежать использования сразу двух. Надо это ограничить, как-то пометить для новых и старых поколений что не рекомендуется использовать.
Мы 5 лет уже как задепрейтили внутри компании использование GetList и перешли на ORM, в т.ч. для инфоблоков. Живется отлично, и проекты куда как более поддерживаемые чем при использовании старого API.
Битрикс еще не реализовал для ORM инфоблоков весь функционал, который в CIblockElement, по этому @deprecated на всю API не стоит ставить, но, в документации сказано, что только для добавления, обновление и удаление данное не решено, это значит, что для CIblockElement::GetList официально можно запрещать его использование.
Есть предложение на методах CiblockElement делать @deprecated через некоторое время. Чтобы новые разработчики сразу понимали что есть более оптимальный инструмент работы, и сообщество получало меньше legacy кода.