
Установите этот пакет с композитором:
| PHP версия | Версия пакета |
|---|---|
| PHP ^7.1 | composer require kafkiansky/service-locator-interrupter "1.0.4" --dev |
| PHP ^8.0 | composer require kafkiansky/service-locator-interrupter "2.0.1" --dev |
| PHP <= 8,1 | composer require kafkiansky/service-locator-interrupter "2.1.0" --dev |
| Php ^8.1 && laravel ^10.x | composer require kafkiansky/service-locator-interrupter "^4.0" --dev |
| Php ^8.2 && laravel ^11.x | composer require kafkiansky/service-locator-interrupter "^5.0" --dev |
Разработчики, похожие на Ларавел, предпочитают использовать некоторые виды плохих практик МОК. В примере: фасады, метод помощников, впрыск контейнеров и создание экземпляров контейнеров в любом месте: контроллеры, услуги, маршруты и даже в моделях. Вам нужно вводить необходимые услуги в метод и конструктор, а не вызовать контейнер, чтобы сделать это для вас. Любые услуги должны иметь свой собственный контракт, инъекция контейнера - это не юридический контракт, он взломан.
Этот плагин может найти проблемы использования локатора обслуживания - помощники, фасады, впрыск контейнеров, создание экземпляров контейнера - и предотвратить их.
Даже если у вас есть собственный фасад, плагин будет найден .
Даже если у вас есть унаследованные классы Container/Application , плагин будет найден .
Даже если вы реализовали какой -либо FO ContainerInterface , плагин также предотвращает это .
| Помощник (ы)/фасад | Что вам нужно использовать вместо этого |
|---|---|
event , IlluminateSupportFacadesEvent | IlluminateEventsDispatcher::class , IlluminateContractsEventsDispatcher::class |
info , IlluminateSupportFacadesLog | IlluminateLogLogManager::class , PsrLogLoggerInterface::class |
logger , IlluminateSupportFacadesLog | IlluminateLogLogManager::class , PsrLogLoggerInterface::class |
logs , IlluminateSupportFacadesLog | IlluminateLogLogManager::class , PsrLogLoggerInterface::class |
abort, abort_if, abort_unless | IlluminateHttpExceptionsHttpResponseException , SymfonyComponentHttpKernelExceptionHttpException |
auth , IlluminateSupportFacadesAuth | IlluminateAuthAuthManager::class , IlluminateContractsAuthFactory::class |
back | IlluminateRoutingRedirector |
broadcast , IlluminateSupportFacadesBroadcast | IlluminateBroadcastingBroadcastManager , IlluminateContractsBroadcastingFactory |
cache , IlluminateSupportFacadesCache | IlluminateCacheCacheManager::class , IlluminateContractsCacheFactory::class |
config , IlluminateSupportFacadesConfig | IlluminateConfigRepository::class , IlluminateContractsConfigRepository::class |
cookie , IlluminateSupportFacadesCookie | IlluminateCookieCookieJar::class , IlluminateContractsCookieFactory::class , IlluminateContractsCookieQueueingFactory::class |
dispatch, dispatch_now | IlluminateContractsBusDispatcher , IlluminateBusDispatcher , IlluminateContractsBusQueueingDispatcher , |
redirect , IlluminateSupportFacadesRedirect | IlluminateRoutingRedirector , IlluminateHttpRedirectResponse |
report | IlluminateContractsDebugExceptionHandler |
request , IlluminateSupportFacadesRequest | IlluminateHttpRequest::class , SymfonyComponentHttpFoundationRequest::class |
response , IlluminateSupportFacadesResponse | IlluminateContractsRoutingResponseFactory , IlluminateRoutingResponseFactory , |
route , IlluminateSupportFacadesRoute | IlluminateRoutingUrlGenerator::class , IlluminateContractsRoutingUrlGenerator::class , |
url , IlluminateSupportFacadesURL | IlluminateRoutingUrlGenerator::class , IlluminateContractsRoutingUrlGenerator::class , |
session , IlluminateSupportFacadesSession | IlluminateSessionSessionManager::class , IlluminateSessionStore::class , IlluminateContractsSessionSession::class |
trans, trans_choice | IlluminateContractsTranslationTranslator , IlluminateTranslationTranslator , |
validator , IlluminateSupportFacadesValidator | IlluminateValidationFactory::class , IlluminateContractsValidationFactory::class |
view , IlluminateSupportFacadesView | IlluminateViewFactory::class , IlluminateContractsViewFactory::class |
$ composer codeceptionЛицензия MIT (MIT). См. Файл лицензии для получения дополнительной информации.