Thinkphp6 知识点二—— 容器和依赖注入
2022-11-24 11:10:29
170
{{single.collect_count}}

 

1、什么是容器?那么装的是什么?为什么要这么做?

      字面意思理解为装东西的器皿。

      装的是类实例化的对象。

      第一点使用对象方便,第二点解耦。

2、什么是依赖注入?

依赖注入是指对类的依赖通过构造器完成自动注入(控制器中)。

<?phpnamespace app\controller;use think\Request;//必须引用class Index{protected $req;//将Request的类通过构造器自动注入,实例化变量名$Requestpublic function __construct(Request $Request){//赋值变量名$this->req = $Request;}public function hello($name){return 'Hello,' . $name . '!This is '. $this->req->action();}}//使用容器来实例化的话,可以自动进行依赖注入。invoke(类名)//某个方法依赖注入invoke(['类名','方法名'])

  扩展知识:

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
 

接口使用规范

  • 接口不能实例化
  • 接口的属性必须是常量
  • 接口的方法必须是public【默认public】,且不能有函数体
  • 类必须实现接口的所有方法
  • 一个类可以同时实现多个接口,用逗号隔开
  • 接口可以继承接口【用的少】
interface Cinema{const film = '加勒比海盗';public function show();}class Order implements Cinema{public function show(){echo "影院 接口开放了<br>";}}

备注:上面的例子要注意一点,接口的方法名是show,继承接口的类中必须有show这个方法,不然就会报错。也就是说接口的方法是假的,真正起作用的是在继承的类中的方法。

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}