Laravel 5 Facades或依赖注入的优点和缺点

时间:2015-03-07 22:22:50

标签: dependency-injection ioc-container laravel-5

我正在为Laravel 5开发一个包,我决定在我的包中使用Dependency Injection,并且很容易在Laravel中实现,特别是constructor injection,但是当涉及Facades一些新的时候问题出现了。当我们有像

这样的课程时
  class MyController extends \App\Http\Controllers\Controller
 {        
   public $text;
   protected $lang; 

   public function __construct(\Lang $lang)
   {         
      $this->lang = $lang;
   }

   public function myFunction(){
     $this->text = $this->lang->get('package::all.text1');           
   }
  }

上面的代码不起作用,因为LangFacade,因此我们必须将代码更改为:

  use Illuminate\Translation\Translator

  class MyController extends \App\Http\Controllers\Controller
 {        
   public $text;
   protected $translator; 

   public function __construct(Translator $translator)
   {         
      $this->translator = $translator;
   }

   public function myFunction(){
     $this->text = $this->translator->get('package::all.text1');           
   }
  }

问题: 我需要知道使用外观来使用构造函数注入的优点和缺点

我也检查了这个问题: laravel - dependency injection and the IoC Container已经问过这个问题了: Dependency Injection in Laravel 5 Package To Use or Not To Use

你也可以帮助确认第一个问题的答案

0 个答案:

没有答案