Facade功能可以让类无需实例化而直接进行静态方式调用。
use think\facade\Cache;
Cache::set('name','value');
echo Cache::get('name');
注意:在进行依赖注入的时候,请不要使用Facade类作为类型约束,而是建议使用原来的动态类
<?php
namespace app\index\controller;
use think\App;
class Index
{
public function index(App $app)
{
}
}
事实上,依赖注入和使用Facade代理的效果大多数情况下是一样的,都是从容器中获取对象实例。例如:
<?php
namespace app\index\controller;
use think\Request;
class Index
{
public function index(Request $request)
{
echo $request->controller();
}
}
和下面的作用是一样的
<?php
namespace app\index\controller;
use think\facade\Request;
class Index
{
public function index()
{
echo Request::controller();
}
}
依赖注入的优势是支持接口的注入,而Facade则无法完成。