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
1、Spring原始碼分析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
原始碼分析HashMap、Hashtable、HashSet的區別
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原始碼分析——Throwable、Exception、Error類解析
在Java中,錯誤分為兩種,一種是jvm能處理的錯誤,叫做異常,Java中表示Exception類;而另外一種則是jvm不能處理的錯誤,叫做錯誤,Java中表示為Error類。它們三者的關係以及常見的子類的實現如下圖: &
Java原始碼分析——String、StringBuffer、StringBuilder類(二)——AbstractStringBuilder抽象類
在Java中,關於字串類分為兩種,一種是上篇部落格講的String類,即不可變字串類,另外一種則是可變字串類,即AbstractStringBuilder抽象類的子類,StringBuffer與StringBuilder類,其中的兩者的區別
ThreadPoolExecutor原始碼分析 -- execute、shutdown方法
來個簡單的例子 ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 10,100, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(1
Openck_Swift原始碼分析——新增、刪除裝置時演算法詳細的實現過程
1 初始加入裝置後、上傳Object的詳細流程 前幾篇部落格中,我們講到環的基本原理即詳細的實現過程,加入我們在初始建立Ring是執行例如以下幾條命令: •swift-ring-builder object.builder 
原始碼分析HashSet、TreeSet以及LinkedHashSet
寫這篇部落格,主要是弄清楚HashSet的底層實現原理,其實我們大部分人對HashSet不是很熟的,畢竟面試時問的最多的都是HashMap,如果問道了二者關係,我們會經常這樣說:HashSet和HashMap都是基於hash表(陣列+連結串列)實現的,HashSe
谷歌瀏覽器的原始碼分析 1
隨著網路技術的發展,越來越多應用都已經離不開網路,特別像人類大腦一樣的知識庫的搜尋引擎,更加是離不開功能強大的雲端計算。不過,即便雲端計算非常強大,但它還不能直接地把結果呈現給使用者,這樣就需要一個客戶端來呈現出來,這個客戶端就是瀏覽器。現在越來越多人上網,他們每一次上網,都離不開瀏覽的使用,這已經是一