thinkphp6系列之:容器 和 服务
我是一只老菜鸟,学习过程中记录下一些小例子吧!超级小白,简单的理解。
官方对服务的一个说明:
系统服务的概念是指在执行框架的某些组件或者功能的时候需要依赖的一些基础服务,服务类通常可以继承系统的think\Service类,但并不强制(如果继承think\Service的话可以直接调用this->app获取应用实例)。
你可以在系统服务中注册一个对象到容器,或者对某些对象进行相关的依赖注入。由于系统服务的执行优先级问题,可以确保相关组件在执行的时候已经完成相关依赖注入。
下官方对容器的一个说明
容器类的工作由think\Container类完成,但大多数情况我们只需要通过app助手函数或者think\App类即可容器操作,如果在服务类中可以直接调用this->app进行容器操作
。
面就来一个简单易懂的例子来展示thinkphp6 的容器和服务的配合应用。
1、生成服务,来到站点的根目录,执行代码 php think make:service FileSystemService
,这样就系统就生成了一个FileSystemService的服务文件。
!
2、服务注册,定义好你的系统服务之后,您还需要注册服务到您的应用中。
3、应用,我在register方法中绑定了一个测试类 和一个模型类到容器中。
4、控制器中用app() 调用。
5、测试