Laravel — Как переопределить классы поставщиков с помощью композитора?
Как разработчик Laravel, вы могли столкнуться с ситуацией, когда вам не нравится какой-то код в пакете в папке поставщика, и вы хотели его изменить. И вы можете изменить это прямо в этом файле. Но проблема в том, что вы нажимаете команду обновления композитора. Я понял, как очень легко переопределить классы поставщиков.
Файл composer.json исключает файлы и включает папку
Итак, каково решение?
Благодаря композитор ребята, что у него есть функциональность для переопределения любых классов/пакетов. Композитор использует ПСР-4 для загрузки классов. Таким образом, в composer.json вы можете указать, из каких файлов или папок загружать классы. Так же, как вы можете исключить его также.
Для окон
Исключить файлы
См. пример ниже, чтобы увидеть, как я исключил 3 файла из пакета. Таймон / jwt-auth
«исключить из карты классов»: [«vendor\tymon\jwt-auth\src\Middleware\BaseMiddleware.php»],
В приведенном выше примере видно, что я исключил файл BaseMiddleware.php. Вы должны поместить эту строку в композитор в основной объект. Здесь следует отметить одну вещь: у меня есть двойная обратная косая черта в пути, потому что я был на машине с Windows, и, поскольку это файл JSON, поэтому мне нужно экранировать (), так что двойная обратная косая черта там.
Включить файлы для переопределения поставщика
Теперь мы исключили файлы, которые хотели переопределить, теперь нужно включать новые файлы с изменениями, чтобы композитор знал, какие файлы включать.
Для этого добавьте еще одну пару значений ключа к ключу «psr-4» в composer.json, как показано ниже:
«пср-4»: {
«Приложение\»: «приложение/»,
«Таймон\»: «приложение/переопределяет/»
}
Красный текст в приведенном выше коде добавлен, чтобы указать композитору включать файлы в папку app/overrides.
- Теперь создайте папку overrides.
- Скопируйте и вставьте все файлы из пакета, который вы хотите переопределить.
- Измените файл в соответствии с вашими потребностями.
- Добавьте строку выше в composer.json
- Команда Run «композитор дамп-автозагрузка» (без кавычек)
Приведенная выше команда обновит все файлы автозагрузки, чтобы включить ваши новые файлы. Помните, что всякий раз, когда вы меняете что-либо в файле composer.json, вам нужно запускать приведенную выше команду, чтобы отразить изменения.
Для Юникс/Линукс
Инструкции для пользователей Linux такие же, изменится только код, о чем я упоминаю ниже. Следуйте тем же инструкциям, что и для пользователей Windows выше.
Исключить файлы
Если вы используете Linux/Unix, путь к машине будет таким:
«исключить из карты классов»: [«vendor/tymon/jwt-auth/src/Middleware/BaseMiddleware.php»],
Включить файлы
«пср-4»: {
«Приложение/»: «приложение/»,
«Таймон/»: «приложение/переопределяет/»
}
Переопределяет это просто имя, вы можете выбрать то, что вам нравится. Важно указать относительный путь к файлу composer.json.
Спасибо
Наслаждайтесь взломом…!!!
Статья изначально была опубликована на syammakwana.me. Подпишитесь на информационный бюллетень в моем блоге или следуйте за мной здесь, чтобы получать уведомления, когда я публикую новую статью о технологиях.