Не первый раз возникла нужда переопределить функцию.
Необходимо к примеру что-то внести в функцию, добавить.
Пробовал через init.php, но ни какой проверки видимо при объявлении функций не стоит. Только при подключении модулей.
Предлагаю дать возможность переопределять функции битрикса, не трогая ядро.
Сейчас вашу задачу можно решить только с использованием runkit
Но хотелось бы, чтобы разработчики битрикса написали. Там в последующих версиях может меняться, а при обновлении битрикса все бы работало хорошо.
Я согласен, фишка нужная, сам не откажусь, но лет через 5 она столько гемора принеет, что страшно представить.
runkit хорошо, но он есть не везде и РНР надо собирать с ним.
На счет переопределений классов и методов не вижу больших проблем если использовать контейнер DI.
Да, в теории что то могут сломать, но там всегда будет видно откуда "ноги растут". э
Сейчас же есть ряд задач, которые без переопределения ядра НИКАК (нормально) не решить, и это печалит.
Да чего таить, сам этим на паре проектов занимаюсь, ибо Битрикс уже 2й год не может дописать 1 строчку.
Тут больше надо показать подход(учебный курс), как можно правильно переопределять медоды и функции.
Я еще раз акцент сделаю - переопределение это ВСЕГДА отключение мозга, всегда отключения развития программиста. Походил, покурил, чаю попил -- "ну эта задача определенно из 1% задач, которые Битрикс НЕ МОЖЕТ РЕШИТЬ!! надо переопределять".
Я до сих пор с таким сталкиваюсь в себе (а опыта 10 лет уже). Что мол "ай как хорошо было бы тут влезть". Ан нет, денек подумал, переспал с идеей, и родилось решение в обход. Очень редко бывают затыки (я привел пример).
Поэтому я считаю идеи переопределения из коробки опасностью для идеологии. Тут 1-5% пользы, зато 50% вреда.
Просто когда реально это необходимо, приходится писать всякие костыли, писать свои функции точно такие же, но отличающиеся 1-2 строчками кода. И они у всех находятся в разных местах. Вот это действительно проблема.
Так же в этом файле можно писать (сделать так сказать неофициальный стандарт среди разработчиков) свои функции, чтобы в случае чего не искать по всем шаблонам сайтов и т.д. Сейчас берешься что-то иногда доделать, и реально не понимаешь что где написано.
Я думаю этой идее есть место быть. Как например картинки должны храниться в upload, скрипты в js и т.д.
Согласитесь когда все инструменты на своих местах, то и работать приятно.
А техподдержка битрикса - они уже знают что где будет лежать, в случае обращения.