linuxoidoz писал(а):не, vendor все-таки не то. Я нашел concrete/src/Captcha/SecurimageController.php. Все сделал, все работает вроде правильно. Но оказывается нету папки application/src. А как же тогда можно оверрайд SecurimageController класс< чтобы изображение изменить?
Все то, мы же про 3rdparty говорим, суть - сторонние библиотеки. Сейчас в C5 привели в соответствие все. Все свои библиотеки в Src, а все сторонние в vendor и это правильно, особенно учитывая поддержку composer.json
Теперь что касается перекрытия. Они все выполняются через переопределение сопоставлений неймспейсов. Например, если я хочу перекрыть TextHelper, я не могу просто положить файл в соответствующую директорию, как в 5.6. Теперь, допустим у меня есть пакет my_pkg и в нем мой новый хелпер, перекрывающий системный. Тогда я должен директорию
/packages/my_pkg/src/Utility/Service положить файл с именем
Text.php, в котором моя версия хелпера. Неймспейс сооответственно будет
Concrete\Package\TheaterManagment\Src\Utility\Service. А потом в контроллере пакета, реализовать следующий метод:
- Код: Выделить всё
public function on_start() {
\Core::make('app')->singleton('helper/text', 'Concrete\Package\MyPkg\Src\Utility\Service\Text');
}
И тогда мой хелпер заменит системный. Аналогично нужно поступать и с другими перекрытиями.
На самом деле это хорошо, лучше чем было в 5.6, т.е. теперь можно в своем пакете нести нужные переопределения, не раскидывая файлы по всей системе.