我想$this
从我的控制器传递给我的服务提供者,以便我可以将它与我的自定义类一起使用。这样,我可以参考我的控制器并输出成功。
控制器
function Foo(){
//$this is defined
MyFacade::Bar($input);
}
function success(){
return var_dump('Succes!');
}
服务提供者
<?php namespace App\Libraries\Extensions\Filesystem;
use Illuminate\Support\ServiceProvider as IlluminateServiceProvider;
use App\Libraries\Extensions\Filesystem\Filesystem;
class FilesystemServiceProvider extends IlluminateServiceProvider {
public function register()
{
$this->app->bind('files', function(){
return new Filesystem($this);
});
}
}
自定义类
<?php namespace App\Libraries\Extensions\Filesystem;
use \Illuminate\Filesystem\Filesystem as IlluminateFilesystem;
class Filesystem extends IlluminateFilesystem {
protected $listener;
public function __construct($listener)
{
$this->listener = $listener;
}
function Bar($input){
//Some code
return $this->listener->Success();
}
有了这段代码,我得到了Call to undefined method App\Libraries\Extensions\Filesystem\FilesystemServiceProvider::Success()
.
我相信 myService Provider $this
是通过而不是 my Controller $this
。
如何将我的控制器传递$this
给我的服务提供商,以便我可以打电话MyFacade::Bar($input)
?