我有一个带有2个参数的构造函数的帮助程序类。我想手动注入第二个参数。
所以我想出了Laravels原始绑定,但不幸的是,它甚至没有触发。什么都没发生。
Helper类的构造方法
/**
* Helper Class constructor.
*
* @param array $first
* @param string $second
*/
public function __construct(array $first, string $second = '')
{
$this->first = $first;
$this->second = $second;
}
我的服务提供商
class XServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind(HelperClass::class, function () {
$file = json_decode(file_get_contents('__DIR__'), true);
return new HelperClass($file);
});
$this->app->when('App\Helpers\HelperClass')
->needs('$second')
->give('Some value');
}