Как правильно вносить изменения в чужие библиотеки/бандлы?
У меня есть бандл капчи, в котором мне нужно расширить функционал, добавить несколько новых методов. Самый простой вариант это просто открыть исходники непосредственно в vendor и отредактировать там нужные классы, но в этом случае меня ждёт сразу несколько неприятностей:
* удаление моего кода после выполнения команды composer update
* никто не узнает, что код был модифицирован
* сам способ выглядит как-то странно
Получается мне нужно перенести весь код в рабочую директорию проекта вне composer'a, чтобы редактировать его не опасаясь удаления, если я прав, то как это лучше сделать? Если я не пав, то какой есть адекватный способ вносить изменения в чужой код?
Найти бандл-репозиторий на гитхабе и создать им пулл-реквест. Ваш КО.
Если такового нет - ну банально связаться с разработчиками и почтой предложить желаемые изменения. В основном разрабы - довольно адекватные люди и будут рады помочь.
Для этого существует наследование. Никаких изменений не нужно форкать, реквестить и все что угодно делать. Наследуешь класс который тебе нужен, переопределяешь нужные методы или добавляешь свои и работаешь с ним. Как раз про это правило Open-Closed в solid - открыт для расширения, закрыт для изменения.