Dim*_*nov 6 php dependency-injection laravel laravel-5
方法注入如何在Laravel 5(我的意思是实现)中工作,我可以在自定义方法中注入参数,而不仅仅是在控制器操作中吗?
Mar*_*yan 12
1)阅读本文以了解有关laravel 5中方法注入的更多信息
http://mattstauffer.co/blog/laravel-5.0-method-injection
https://laracasts.com/series/whats-new-in-laravel-5/episodes/2
2)这是方法注入的简单实现
$parameters = [];
$reflector = new ReflectionFunction('myTestFunction');
foreach ($reflector->getParameters() as $key => $parameter) {
$class = $parameter->getClass();
if ($class) {
$parameters[$key] = App::make($class->name);
} else {
$parameters[$key] = null;
}
}
call_user_func_array('myTestFunction', $parameters);
Run Code Online (Sandbox Code Playgroud)
你也可以看看功能
public function call($callback, array $parameters = [], $defaultMethod = null)
Run Code Online (Sandbox Code Playgroud)
在 https://github.com/laravel/framework/blob/master/src/Illuminate/Container/Container.php 文件中了解更多详情
3)您可以使用方法注入自定义方法
App::call('\App\Http\Controllers\Api\myTestFunction');
Run Code Online (Sandbox Code Playgroud)
或方法
App::call([$object, 'myTestMethod']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7301 次 |
| 最近记录: |