У нас есть устаревший проект, который мы не можем обновить, и нам нужно внести некоторые изменения в symfony Response.php
в поставщике. Мы решили эту проблему, скопировав Response.php
в отдельную папку и используя псевдоним для загрузки этого нового класса вместо вендора. Мы сделали это в AppServiceProvider
:
public function boot()
{
AliasLoader::getInstance()->alias('Symfony\Component\HttpFoundation\Response', 'App\Overrides\Response');
...
public function provides()
{
return ['Symfony\Component\HttpFoundation\Response'];
Это работало нормально, пока мы не начали работу, и внезапно оно перестало работать. Хотя он все еще отлично работает на наших dev
серверах. Мы ясно видим, что загружается оригинальный класс от vendor вместо класса Overrides
, поэтому по какой-то причине псевдоним не работает. Кто-нибудь знает, что может быть причиной этого? Даже не знаю, с чего начать или какие настройки или команды ремесленников могли вызвать такое поведение.
Обновление: После дальнейшего исследования кажется, что оптимизм кустарного промысла является виновником. На наших серверах разработки класс Response обслуживается из папки Overrides, а на производстве - из оптимизированного. php кэша. Даже при том, что оба сервера работают, оптимизируют.