dev-master
9999999-devDependency Injection For Controller Methods in Laravel
MIT
The Requires
- php >=5.4.0
laravel
Wallogit.com
2017 © Pedro Peláez
Dependency Injection For Controller Methods in Laravel
Dependency Injection for Methods in Laravel Controllers, (*1)
Enabling you to use the IOC to inject into controllers methods. Why? Well somethings you have a instance of something you only want for one of a controllers methods so does not make sense to inject via the constructor., (*2)
Quick Example, (*3)
public function index( \ACME\Validation\Company $companyValidation)
{ }
Add To composer.json, (*4)
{
"require": {
"mrsimonbennett/dipr": "dev-master"
}
}
```
I recommend you use a BaseController of some sort, if not your controller need to extend Mrsimonbennett\Dipr\Controller
```php
<?php
use Mrsimonbennett\Dipr\Controller;
class BaseController extends Controller {
}
(needs more work), (*5)
/**
* Class ProcessController
* @package Amce\Controllers
*/
class ProcessController extends \BaseController
{
/**
* @param Request $request
*/
public function getRequest(Request $request)
{
return $request->All();
}
/**
* @param Request $request
* @param string $slugFromRouteConfig
*/
public function getRequestWithURLSlug(Request $request, $slugFromRouteConfig)
{
}
/**
* @param User $userFromRouteConfig
* @param Request $request
* @param string $randomSlugStringFromRouteConfig
*/
public function getRequestWithModelFromRouter(User $userFromRouteConfig,Request $request, $randomSlugStringFromRouteConfig)
{
}
}
As you can see objects are always first before strings/ints loaded using the router.php, (*6)
If you get stuck you can always use var_dump the func_get_args() and see whats going on, (*7)
Dependency Injection For Controller Methods in Laravel
MIT
laravel