208 похожих чатов

Добрый вечер! Такой вопрос - как корректно расширить штатный модуль

битрикса, не внося изменения в ядро? Мне нужно добавить всего один свой метод

19 ответов

89 просмотров

Можно попробовать написать свой класс унаследованный от класса этого модуля и воткнуть туда метод, если гении битрикс туда не впихнули final. Или прикрутить метод просто сбоку, если он будет использоваться сам по себе.

init.php править можно?

а то у меня была задача посложнее, сделать то же самое, но не внося никакие правки в init.php

Crab 🦀- Автор вопроса
Crab 🦀
Да

spl_register_autoload в начало init.php, тут используешь тот факт, что классы в php не встроенный функционал (ссылки найдешь). Но не касается ряда классов из ядра Битрикса, которые стартуют раньше начала выполнения init.php. Но их немного.

Crab 🦀
Да

Таким образом тебе даже ядро переписывать не придется

Сразу надо было послать. Чо это init.php нельзя править? А что править?

Александр Маджугин
Сразу надо было послать. Чо это init.php нельзя пр...

Модули не правят ядро. Как-то так. Но очень нужны были деньги. После НГ я наработаю портфолио и увелчиу расценки до 2 тысяч в час. Всему виной трудная личная жизнь и полтора года перерыва на занятия разработкой приложений для смартфонов и полгода лучезарного отдыха

Александр Маджугин
Сразу надо было послать. Чо это init.php нельзя пр...

Хотя можно и в модулях править ядро, но это было бы уже некорректное решение

Crab 🦀- Автор вопроса

Но здесь такой момент, что я правлю модуль, который имеет свои методы для вебхука, определенные в "константе" $map (53 строка), для большей ясности прикреплю код файла: https://pastebin.com/5MaQ1wxG Мне, насколько я понимаю, нужно добавить в эту же константу свой метод, чтобы при отправке запроса по вебхуку - он отрабатывал, т.е.: https://bitrix.ru/rest/1/asdf/bizproc.my.method

Crab 🦀- Автор вопроса
Vitaly Tatarintsev
вторая ссылка - 404.

Да, это просто пример вебхука, метода, который должен отрабатывать и который нужно занести в $map

Crab 🦀
Да, это просто пример вебхука, метода, который дол...

стандартная ссылка по перегрузке методов ядра Битрикса - https://aclips.ru/bitrix-override-classes/. Я бы мог, как решивший несколько более изощренную задачу в статью добавить еще пару дополнений, но лень пока.

Crab 🦀
Да, это просто пример вебхука, метода, который дол...

и потом поделись, проходит ли при отработке вебхука init.php или там еще какие-то свои закавыки. идёт?

Crab 🦀
Но здесь такой момент, что я правлю модуль, которы...

https://gist.github.com/Dok11/68704fb68dbd7fe416b717e25f833246 — вот такой хак еще можно попробовать, если другими способами не выдйет. При наследовании сделать свой метод onRestServiceBuildDescription, вызвать parent::..., взять его результат, добавить или изменить что вам требовалось и вернуть модифицированный массив

Crab 🦀- Автор вопроса
Олег Постоев
https://gist.github.com/Dok11/68704fb68dbd7fe416b7...

Значит, как я предполагал, в модуле можно переписывать и файлы из ядра. Хотя опять же, если обновление пройдется именно по этому классу, то изменения будут затерты.

Vitaly Tatarintsev
Значит, как я предполагал, в модуле можно переписы...

Это не перезапись файлов из ядра, это использование их в рантайме. Сам файл остается неизменным То есть, для контроля целостности все останется как и было, но в момент выполнения кода мы получаем расширенную функциональность.

Олег Постоев
Это не перезапись файлов из ядра, это использовани...

да, более изящное решение. хотя, конечно, php производный от сишника, у скриптовых языков всегда есть и недостатки и достоинства

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта