6

Yii框架base包代码分析

 2 years ago
source link: https://blogread.cn/it/article/6049?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Yii框架base包代码分析

浏览:2190次  出处信息

   周日闲来无事,打开Yii的源代码学习一下,今天主要看的代码都是base包里面的,也就是框架根目录下的base目录里的代码。这个目录里的代码不多,但是类很多,而且这些类对整个框架来说至关重要,都是非常基本的组件。老实说,这里面的代码,我已经看了无数次了,但是总觉得常看常新,转念一想,这也实属正常,毕竟这是原作者数年框架开发经验的结晶,岂是我这等工作一两年的菜鸟能随便吃透的?

   最近又玩了两次Visual Paradigm这个软件,觉得自己操作水平又有进步,甚感欣喜,所以今天既然分析源代码,就正好再练练手,于是乎,我开始用VP UML开始画base包里的类,得图如下。(说明:这个图是基于Yii的1.1.8版本,另外这里面少了两个类,因为这两个类的功能比较特殊,我没有细看,所以也就没有画在图里,看后面是不是有兴致再来专门画一张,缺失的两个类是CSecurityManager和CStatePersister。)

   

YiiFramework-base.png

   从这个图里各个类占的面积里,我们不难看出,最重要的类有四个,CComponent,CModule,CApplication,CModel。事实上,这四个类也贯穿着Yii框架应用开发过程的始终,扮演着至关重要的角色。然而,如果你真的用Yii开发应用,可能一个应用做完了,却又没怎么见过这四个类的踪影,因为他们太基础了,始终处在水面之下,使得你可能根本就忽视了它们的存在。下面,我就一个一个来简单说一下我的学习心得。

   CComponent类,是整个Yii框架组件模型的基础,Yii框架内几乎所有的对象都是组件,其基类都是CComponent。细看其方法,我们发现基本上可以归类为三种,一是魔术方法,就是一些双下划线开头的方法,一是跟Behavior有关的方法,最后是跟Event有关的方法。这也就引出了组件的三大主要特性。属性成员,事件驱动和行为。

建议继续学习:

  1. Yii框架的Log系统的分析    (阅读:2025)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

Recommend

  • 109
    • www.yiiframework.com 6 years ago
    • Cache

    Yii 2.0.13 is released | News | Yii PHP Framework

    Yii 2.0.13 is released We are very pleased to announce the release of Yii Framework version 2.0.13. Please r...

  • 65
    • www.yiiframework.com 6 years ago
    • Cache

    Yii 2.0.14 is released | News | Yii PHP Framework

    We are very pleased to announce the release of Yii Framework version 2.0.14.Please refer to the instructions at http://www.yiiframework.com/download/to install or upgrade to this version.

  • 47

    概述在Yii2中,页面上用表格显示数据时,一般是用数据提供器(DataProvider)来给表格作为数据源,这个思路就是不管你数据来源是什么,但是最终提供给页面表格显示的时候,其格式和接口都是一致的,这样就有效的实现了前后台的解耦。在实际开发中,最常用的是Activ...

  • 39
    • www.tuicool.com 5 years ago
    • Cache

    [news] Yii 2.0.17

    We are very pleased to announce the release of Yii Framework version 2.0.17. Please refer to the instructions at https://www.yiiframework.com/download/ to install or upg...

  • 48

    README.md Yii Web Programming Framework Thank you for choosing Yii - a high-performance component-based PHP framework.

  • 25
    • sexywp.com 4 years ago
    • Cache

    为什么不选Yii框架?

    以前,我也注意到,不在现有项目中引入框架是有原因的,而且,尤其不能选用Yii框架。 “继承”噩梦 你所有的controller,都继承自CController,其又继承自CBaseController,这个又继承自CComponent。 所有你的mode...

  • 24
    • www.cnblogs.com 4 years ago
    • Cache

    Yii redis 集合的使用

    redis 的集合是无序的,集合成员是唯一的,不能重复。用户可以快速地对集合执行添加元素操作、移除元素操作以及检查一个元素是否存在于集合中。这里介绍一些常用的集合处理命令,并在 Yii 中的使用。 SADD SADD:SADD key...

  • 3
    • www.oschina.net 3 years ago
    • Cache

    YII项目部署问题

    YII项目部署问题 ...

  • 5

    Prevent users from accessing a URL directly Yii 2 advertisements I have this piece of code that if the user clicks on it the link will be repl...

  • 3

    YII框架学习——有关ActiveRecord的一些坑

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK