1. 程式人生 > >Yii原始碼分析——1、簡介

Yii原始碼分析——1、簡介

Yii的作者是美籍華人“薛強”,他原是Prado核心開發成員之一。2008年薛強另起爐灶,開發了Yii框架,於2008年12月3日釋出了Yii1.0版本。

Yii是目前比較優秀的PHP框架之一,它的支援的特性包括:MVC、DAO/ActiveRecord、I18N/L10N、caching、AJAX支援、使用者認證和基於角色的訪問控制、腳手架、輸入驗證、部件、事件、主題化以及Web服務等。

Yii的很多思想參考了其它一些比較優秀的Web框架(我們寫東西時是不是也喜歡參考別人的?有木有?嘿嘿,都喜歡站在別人的肩膀上幹活!),下面是一個簡短的列表:

框架名稱

參考思想

Prado

基於元件和事件驅動程式設計模式、資料庫抽象層、模組化的應用架構、國際化和本地化等

Ruby on Rails

配置思想、基於Active Record的ORM

jQuery

集成了jQuery

Symfony

過濾設計和外掛架構

Joomla

模組化設計和資訊翻譯方案


相關推薦

Yii原始碼分析——1簡介

Yii的作者是美籍華人“薛強”,他原是Prado核心開發成員之一。2008年薛強另起爐灶,開發了Yii框架,於2008年12月3日釋出了Yii1.0版本。 Yii是目前比較優秀的PHP框架之一,它的支援的特性包括:MVC、DAO/ActiveRecord、I18N/L10N

5-4 雙緩衝技術(Double Buffering)(1簡介原始碼部分)

#include <QtGui>#include <cmath>#include "plotter.h"Plotter::Plotter(QWidget *parent)    : QWidget(parent){    setBackgroundRole(QPalette::Dark

1Spring原始碼分析1之讀取配置檔案

1、XMLBeanFcatory BeanFactory bf = new XmlBeanFactory(new ClassPa

Netty Pipeline原始碼分析(1)

原文連結:wangwei.one/posts/netty… 前面,我們分析了Netty EventLoop的 建立 與 啟動 原理,接下里我們來分析Netty中另外兩個重要元件—— ChannelHandler 與 Pipeline。Netty中I/O事件的傳播機制均由它負責,下面我們來看看它是如

vue原始碼分析1-new Vue做了哪些操作

首先我們可以看到vue的原始碼在github上有,大家可以克隆下來。 git地址 我們主要看src下的內容。 1.現在我們來分析下 new Vue都做了哪些操作 var app = new Vue({ el: '#app', mounted:{ console.log(t

redis原始碼分析1------dict的實現

1. 總體結構 redis的dict就是hash表,使用鏈式結構來解決key值衝突,典型的資料結構 結構體的定義如下: typedef struct dictEntry { void *key; union { void *val; uint64_t

Netty原始碼分析:1.4伺服器啟動流程

第一章節是主要是伺服器啟動的程式碼分析。章節目錄有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4伺服器啟動流程 為什麼先從初始化開

Netty原始碼分析:1.3初始化NioServerSocketChannel

第一章節是主要是伺服器啟動的程式碼分析。章節目錄有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4伺服器啟動流程 為什麼先從初始化開

Netty原始碼分析:1.2初始化NioEventLoop

第一章節是主要是伺服器啟動的程式碼分析。章節目錄有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4伺服器啟動流程 為什麼先從初始化開

Netty原始碼分析:1.1初始化NioEventLoopGroup

第一章節是主要是伺服器啟動的程式碼分析。章節目錄有: |———1.1初始化NioEventLoopGroup |———1.2初始化NioEventLoop |———1.3初始化NioServerSocketChannel |———1.4伺服器啟動流程 為什麼先從初始化開

《2.uboot和系統移植-第5部分-2.5.uboot原始碼分析1-啟動第一階段》

《2.uboot和系統移植-第5部分-2.5.uboot原始碼分析1-啟動第一階段》 第一部分、章節目錄 2.5.1.start.S引入 2.5.2.start.S解析1 2.5.3.start.S解析2 2.5.4.start.S解析3 2.5.5.start.S解析4 2.5.6.s

原始碼分析HashMapHashtableHashSet的區別

HashMap原始碼分析-基於JDK1.8 基本結構 1)、初始變數 public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, S

MyBatis原始碼分析-1-基礎支援層-反射模組-Reflector/ReflectorFactory

本文主要介紹MyBatis的反射模組是如何實現的。 MyBatis 反射的核心類Reflector,下面我先說明它的建構函式和成員變數。具體方法下面詳解。 org.apache.ibatis.reflection.Reflector public class Reflector {

rxjs 原始碼分析1-(fromEvent)

前言 Rxjs是使用 Observables 的響應式程式設計的庫,它使編寫非同步或基於回撥的程式碼更容易。我們現在針對Rxjs 6 來進行原始碼分析,分析其實現的基本原理, 我們可以根據中文文件來學習Rxjs 的基本使用,但是這個文件是Rxjs 5 的版本。其最基本的使用區別如下,Rxjs 6的操作符都放

Java原始碼分析——ThrowableExceptionError類解析

    在Java中,錯誤分為兩種,一種是jvm能處理的錯誤,叫做異常,Java中表示Exception類;而另外一種則是jvm不能處理的錯誤,叫做錯誤,Java中表示為Error類。它們三者的關係以及常見的子類的實現如下圖:  &

Java原始碼分析——StringStringBufferStringBuilder類(二)——AbstractStringBuilder抽象類

    在Java中,關於字串類分為兩種,一種是上篇部落格講的String類,即不可變字串類,另外一種則是可變字串類,即AbstractStringBuilder抽象類的子類,StringBuffer與StringBuilder類,其中的兩者的區別

ThreadPoolExecutor原始碼分析 -- executeshutdown方法

來個簡單的例子 ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 10,100, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(1

Openck_Swift原始碼分析——新增刪除裝置時演算法詳細的實現過程

1 初始加入裝置後、上傳Object的詳細流程  前幾篇部落格中,我們講到環的基本原理即詳細的實現過程,加入我們在初始建立Ring是執行例如以下幾條命令: •swift-ring-builder object.builder 

原始碼分析HashSetTreeSet以及LinkedHashSet

      寫這篇部落格,主要是弄清楚HashSet的底層實現原理,其實我們大部分人對HashSet不是很熟的,畢竟面試時問的最多的都是HashMap,如果問道了二者關係,我們會經常這樣說:HashSet和HashMap都是基於hash表(陣列+連結串列)實現的,HashSe

谷歌瀏覽器的原始碼分析 1

隨著網路技術的發展,越來越多應用都已經離不開網路,特別像人類大腦一樣的知識庫的搜尋引擎,更加是離不開功能強大的雲端計算。不過,即便雲端計算非常強大,但它還不能直接地把結果呈現給使用者,這樣就需要一個客戶端來呈現出來,這個客戶端就是瀏覽器。現在越來越多人上網,他們每一次上網,都離不開瀏覽的使用,這已經是一