学习日记2019-03-05

今天主要学习了yii框架的扩展部分

  • yii框架的模块化开发
  • yii框架mixin技术
  • yii框架的事件机制
  • yii框架的依赖注入

yii框架的模块化开发

yii框架作为一款mvc框架,在构建大型项目的过程中总会遇到代码冗余和重复代码太多的问题,另外,把一个大型的项目拆分成多个小模块,并对各个小模块各个击破是开发过程中必须要做的事,所以,yii框架内部是如何实现模块化开发的呢?

借助yii框架的gii代码生成工具我们很容易就可以生成一个模块,但是需要注意的是,为了各个模块之间可以顺利解耦,一定要注意给各个模块单独定义一个文件夹 ,同时在配置文件(web.php)文件的modules属性中添加类的路径,这样就可以通过YII::$app->getModule()方法获取模块了,同时第二个参数还可以传递一个参数作为配置参数的数组,这里需要注意一下,不可以父子模块依赖关系的模块子模块的路径配置可以只需要在服模块中配置即可


学习日记2019-03-05_第1张图片
QQ截图20190305232437.png

yii框架mixin技术

所谓的mixin技术就是通过对象或者类进行混合,进而达到可以横向扩展类的功能,而不用为了继承同一个类带来的强耦合性问题带来不可控的恐惧,主要通过继承component类,并在behavior函数中引用进来通过继承behavior类的子类,这样就可以在类中使用被behavior子类中的方法了,通过这种方式可以很容易的对继承过来的内容进行解耦,同时也可以对类进行实时的解耦

yii框架的事件机制

yii的事件机制就是通过on侦听一个通过triggeri触发的事件,并完成相应的功能,其实YII::$app这个全局对象在实例化的时候就已经侦听了beforeRequest和afterRequest时间了,这样我们可以很简单的通过该事件在请求结束后对我们的应用程序做相关的操作了


学习日记2019-03-05_第2张图片
QQ截图20190305234839.png
  • yii框架的依赖注入

依赖注入分为容器类和服务类,其中服务类基于容器类主要是为了为依赖提供配置参数,而容器类主要是为我们寻找类与类之间的依赖关系,通过实现一个服务类并在配置文件component中添加上类的路径,我们就可以通过全局变量去访问服务类了,通常我们为了解耦,会给服务类通过添加接口的反式来防止类的耦合,所以我们在引用服务类的时候还要给我们的容器类指定继承的接口类,通过YII::$app->container->set()方法进行设置即可

你可能感兴趣的:(学习日记2019-03-05)