作者:关于孔益旺 | 来源:互联网 | 2023-05-26 22:01
方法注入如何在Laravel 5(我的意思是实现)中工作,我可以在自定义方法中注入参数,而不仅仅是在控制器操作中吗?
1> Marty Aghaja..:
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);
你也可以看看功能
public function call($callback, array $parameters = [], $defaultMethod = null)
在 https://github.com/laravel/framework/blob/master/src/Illuminate/Container/Container.php
文件中了解更多详情
3)您可以使用方法注入自定义方法
App::call('\App\Http\Controllers\Api\myTestFunction');
或方法
App::call([$object, 'myTestMethod']);