Download the PHP package kafkiansky/service-locator-interrupter without Composer
On this page you can find all versions of the php package kafkiansky/service-locator-interrupter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kafkiansky/service-locator-interrupter
More information about kafkiansky/service-locator-interrupter
Files in kafkiansky/service-locator-interrupter
Package service-locator-interrupter
Short Description Psalm plugin for Laravel that interrupt service locator calls.
License MIT
Informations about the package service-locator-interrupter
Psalm plugin that prevent service locator calls for Laravel applications.
Contents:
- Installation
- WHY
- Dependency Injection
- Testing
- License
Installation
Install this package with Composer:
PHP Version | Package Version |
---|---|
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
|
WHY
Laravel-like developers prefer to use some kinds of ioc bad practices. In example: facades, helpers method, container injection and container instances creation anywhere: controllers, services, routes and even in models. You need inject necessary services in method and constructor, not call container to do it for you. Any services must has it own contract, container injection - it's not legal contract, it's hack.
This plugin can found issues of service locator usage - helpers, facades, container injection, container instances creation - and prevent them.
Even if you have your own facade, the plugin will be found it.
Even if you have inherited Container/Application
classes, the plugin will be found it.
Even if you have implemented any fo ContainerInterface
, the plugin also prevent that.
Dependency Injection
Replacement map
Helper(s)/Facade | What you need to use instead |
---|---|
event ,\Illuminate\Support\Facades\Event
|
\Illuminate\Events\Dispatcher::class ,\Illuminate\Contracts\Events\Dispatcher::class
|
info ,\Illuminate\Support\Facades\Log
|
\Illuminate\Log\LogManager::class , \Psr\Log\LoggerInterface::class
|
logger ,\Illuminate\Support\Facades\Log
|
\Illuminate\Log\LogManager::class , \Psr\Log\LoggerInterface::class
|
logs ,\Illuminate\Support\Facades\Log
|
\Illuminate\Log\LogManager::class , \Psr\Log\LoggerInterface::class
|
abort, abort_if, abort_unless
|
\Illuminate\Http\Exceptions\HttpResponseException , \Symfony\Component\HttpKernel\Exception\HttpException
|
auth , \Illuminate\Support\Facades\Auth
|
\Illuminate\Auth\AuthManager::class , \Illuminate\Contracts\Auth\Factory::class
|
back
|
\Illuminate\Routing\Redirector
|
broadcast , \Illuminate\Support\Facades\Broadcast
|
\Illuminate\Broadcasting\BroadcastManager , \Illuminate\Contracts\Broadcasting\Factory
|
cache , \Illuminate\Support\Facades\Cache
|
\Illuminate\Cache\CacheManager::class , \Illuminate\Contracts\Cache\Factory::class
|
config , \Illuminate\Support\Facades\Config
|
\Illuminate\Config\Repository::class , \Illuminate\Contracts\Config\Repository::class
|
cookie , \Illuminate\Support\Facades\Cookie
|
\Illuminate\Cookie\CookieJar::class ,
\Illuminate\Contracts\Cookie\Factory::class ,
\Illuminate\Contracts\Cookie\QueueingFactory::class
|
dispatch, dispatch_now
|
\Illuminate\Contracts\Bus\Dispatcher ,
\Illuminate\Bus\Dispatcher ,
\Illuminate\Contracts\Bus\QueueingDispatcher ,
|
redirect , \Illuminate\Support\Facades\Redirect
|
\Illuminate\Routing\Redirector , \Illuminate\Http\RedirectResponse
|
report
|
\Illuminate\Contracts\Debug\ExceptionHandler
|
request , \Illuminate\Support\Facades\Request
|
\Illuminate\Http\Request::class , \Symfony\Component\HttpFoundation\Request::class
|
response , \Illuminate\Support\Facades\Response
|
\Illuminate\Contracts\Routing\ResponseFactory ,
\Illuminate\Routing\ResponseFactory ,
|
route , \Illuminate\Support\Facades\Route
|
\Illuminate\Routing\UrlGenerator::class ,
\Illuminate\Contracts\Routing\UrlGenerator::class ,
|
url , \Illuminate\Support\Facades\URL
|
\Illuminate\Routing\UrlGenerator::class ,
\Illuminate\Contracts\Routing\UrlGenerator::class ,
|
session , \Illuminate\Support\Facades\Session
|
\Illuminate\Session\SessionManager::class ,
\Illuminate\Session\Store::class ,
\Illuminate\Contracts\Session\Session::class
|
trans, trans_choice
|
\Illuminate\Contracts\Translation\Translator ,
\Illuminate\Translation\Translator ,
|
validator , \Illuminate\Support\Facades\Validator
|
\Illuminate\Validation\Factory::class ,
\Illuminate\Contracts\Validation\Factory::class
|
view , \Illuminate\Support\Facades\View
|
\Illuminate\View\Factory::class ,
\Illuminate\Contracts\View\Factory::class
|
Testing
License
The MIT License (MIT). See License File for more information.