深入理解 Yii2.0
来源:互联网 发布:word for mac如何使用 编辑:程序博客网 时间:2024/05/16 12:34
前言
本博客基于 深入理解Yii2.0.并且参考Yii2.0 官方文档,加上自己使用Yii2.0的一些总结和理解。
Yii 2.0
Yii 是一个高性能,基于组件的 PHP 框架。
为什么要用Yii 2.0
- Yii 实现了 MVC(Model-View-Controller) 设计模式并基于该模式组织代码。
- Yii 的代码简洁优雅,这是它的编程哲学。它永远不会为了刻板地 遵照某种设计模式而对代码进行过度的设计。Yii2.0 的开源,背后有特别强大的团队在进行开发维护。
- Yii 是一个全栈框架,提供了大量久经考验,开箱即用的特性: 对关系型和 NoSQL 数据库都提供了查询生成器和 ActiveRecord;RESTful API 的开发支持;多层缓存支持,等等。
- Yii 非常易于扩展。你可以自定义或替换几乎任何一处核心代码。你还会受益于 Yii 坚实可靠的扩展架构,使用、再开发或再发布扩展。
- 高性能始终是 Yii 的首要目标之一。
以上是官方给出的说法,MVC是Yii贯穿始终的思想,一旦了解这个思想,就能够简单的使用开发了。(当然只是简单的应用),但我理解中Yii真正的强大之处在于他的可扩展又集成很多解决方案,比如,伪静态化、国际化、RESTful,它都帮你考虑到了。
Yii 基础概念
组件是 Yii 应用的主要基石。是 yii\base\Component 类或其子类的实例。 三个用以区分它和其它类的主要功能有:
· 属性(Property)
· 事件(Event)
· 行为(Behavior)
这个是网友自己做的一张继承关系图,不全但这里已经够用。
官方的定义: 组件是 yii\base\Component 类或其子类的实例,从图中的子类我们可以看到,小部件,甚至MVC的每一个部分的实例都是一个组件。
属性
class Post extends yii\base\Object // 第一步:继承自 yii\base\Object{ private $_title; // 第二步:声明一个私有成员变量 public function getTitle() // 第三步:提供getter和setter { return $this->_title; } public function setTitle($value) { $this->_title = trim($value); }}
以上的代码非常清晰的显示出属性的特征。
属性是在object类中定义的,我们可以查看源码中yii\base\Object,除了__get() __set() 方法还有:
1. __isset() 用于测试属性值是否不为 null ,在 `isset(object->property) 时被自动调用。 注意该属性要有相应的getter。
2. __unset() 用于将属性值设为 null ,在 unset(object->property) 时被自动调用。 注意该属性要有相应的setter。
3. hasProperty() 用于测试是否有某个属性。即,定义了getter或setter。 如果 hasProperty() 的参数
4. canGetProperty() 测试一个属性是否可读,参数
5. canSetProperty() 测试一个属性是否可写,参数
- 深入理解 Yii2.0
- 深入理解Yii2.0(1) 属性
- 深入理解YII2.0的行为
- 深入理解Yii2.0 (2)事件Event
- 深入理解Yii2.0 (3)行为(Behavior)
- 深入理解 yii2的Active Record
- 深入理解 yii2的Active Record
- 深入理解 yii2的Active Record
- 深入理解Yii2.0 » Yii与数据库(TBD) » 事务(Transaction)
- 深入理解Yii2.0 » Yii 模式 » 依赖注入和依赖注入容器
- 深入理解Yii2.0 » Yii 模式 » 依赖注入和依赖注入容器
- yii2.0框架深入解析学习
- 深入了解yii2框架
- Yii2 理解Object
- Yii2 理解Component
- Yii2 理解Controller
- Yii2 理解filters
- Yii2 理解Validator
- AsyncTask源码分析
- Java集合简介
- spring mybatis
- Spring-MVC 整合JSON 实例
- tensorflow +mnist
- 深入理解 Yii2.0
- Junit4小技巧-测试基类
- 杭电——1016 Prime Ring Problem 深搜
- R语言---数据类型
- android:Button备忘
- 杂记
- 流程、模板 v.s. 敏捷、 精益 v.s. 产品级敏捷、微服务产品级敏捷
- [Qt-creator] The .pro file could not be parsed
- AndroidStudio导入项目过慢