我刚从laravel开始,想要了解这一点......
让我们说我们的应用程序中有一个类:
namespace App\Tests;
class MyTest{
public function sayHello($name){
echo "Hello, $name!";
}
public static function anotherTest(){
echo "another test...";
}
}
创建外观和服务提供商而不仅仅是将其用作
,有什么好处use App\Tests\MyTest;
//... controller declarations here ....
public function someaction(){
$mt = new MyTest();
$mt->sayHello('John');
//or
MyTest::anotherTest();
}
//... etc...
答案 0 :(得分:3)
Laravel中的Facade只是从Service Container获取对象并在其上调用方法的便捷方式。
所以像这样调用Facade:
//access session using a Facade
$value = Session::get('key');
就像在做:
//access session directly from the Service Container
$value = $app->make('session')->get('key');
当Facade从服务容器中解析session
密钥并在其上调用方法get
时
一旦理解了Facade的功能,您应该了解什么是服务容器以及使用它有什么好处
Laravel云中的服务容器是依赖注入容器和应用程序的注册表
使用服务容器而不是手动创建对象的优势在我的previous answers和doc页面之一中说明,但简要说明了一下: