《PHP實例:CI框架學(xué)習(xí)筆記(一) - 環(huán)境安裝、基本術(shù)語和框架流程》要點:
本文介紹了PHP實例:CI框架學(xué)習(xí)筆記(一) - 環(huán)境安裝、基本術(shù)語和框架流程,希望對您有用。如果有疑問,可以聯(lián)系我們。
最開始使用CI框架的時候,就打算寫一個CI源碼閱讀的筆記系列,可惜虎頭蛇尾,一直沒有行動.最近項目少,總算是有了一些時間去寫一些東西.于是準(zhǔn)備將之前的一些筆記和經(jīng)驗記錄下來,一方面權(quán)作備忘,另一方面時刻提醒自己:借鑒和學(xué)習(xí)才有出路,忘記過去意味著背叛!基本術(shù)語說明PHP應(yīng)用
在本文開始之前,有必要對文中反復(fù)出現(xiàn)的術(shù)語做一個簡單的說明,如果你對這一部分已經(jīng)熟諳,完全可以略過.本文中反復(fù)出現(xiàn)和提及的術(shù)語包括:PHP應(yīng)用
前端控制器(Front Controller):PHP應(yīng)用
用于集中控制用戶的所有哀求的組件,將用戶的哀求發(fā)送到具體的應(yīng)用程序控制器.在CI框架中,指的就是框架的入口文件Index.php.前端控制器本身是一種設(shè)計模式,詳細可參考《J2EE設(shè)計模式》.PHP應(yīng)用
應(yīng)用程序控制器PHP應(yīng)用
應(yīng)用程序控制器是具體的處理用戶哀求URL的控制器,通常將一組相關(guān)的處理或者哀求放置在一個應(yīng)用程序控制器中,例如:UserController可能包含用戶的注冊、驗證、個人信息、個人頁面等相關(guān)操作.PHP應(yīng)用
MVCPHP應(yīng)用
老生常談的一個術(shù)語,是一種代碼分層和組織模式.將代碼分為M(Model,業(yè)務(wù)邏輯),V(view ,視圖),C(Controller,控制器)等層次,便于將業(yè)務(wù)邏輯部分和視圖渲染部分分離,減少代碼的耦合.目前PHP中許多框架都基于MVC模式,如ZF,YII,CI等PHP應(yīng)用
Route路由PHP應(yīng)用
雖然名為Route,但這里并不是路由器,而是指截取用戶的哀求并將哀求轉(zhuǎn)發(fā)到特定的Controller處理的過程.不同的框架的路由不同,但基本原理相同.PHP應(yīng)用
Hook鉤子PHP應(yīng)用
最初的Hook是指“消息傳遞中一個環(huán)節(jié),用于監(jiān)控消息的傳遞,并在消息處理之前,添加特定的處理”.這里的Hook是指,在不改變框架核心源碼的基礎(chǔ)上增加或更改系統(tǒng)的核心功能,最典型的情況包括:在控制器加載之前或加載完成之后運行特定的腳本.PHP應(yīng)用
CI框架配置 PHP應(yīng)用
本文的基本環(huán)境:Linux x86_64 GNU/Linux .安裝了PHP(CGI)+Nginx+Mysql+redis(所以本文的許多服務(wù)器相關(guān)的配置都是以Nginx為主,而暫時忽略Apache服務(wù)器).PHP應(yīng)用
首先下載CI框架的源碼,下載地址為:http://codeigniter.org.cn/downloads 目前穩(wěn)定版本是2.2.0 .將源碼解壓到文件夾(假設(shè)為/usr/nginx/html/CI 目錄).PHP應(yīng)用
配置CI框架之前,先瀏覽一下框架的目錄結(jié)構(gòu):PHP應(yīng)用
PHP應(yīng)用
其中:PHP應(yīng)用
Application : 應(yīng)用程序的目錄,你的所有的應(yīng)用代碼都應(yīng)該位于這個目錄PHP應(yīng)用
index.php : 框架的入口文件PHP應(yīng)用
static : 我們自己建立的目錄,放置一些CSS,image和js等靜態(tài)文件(這完全可以放到application目錄下,看個人喜好)PHP應(yīng)用
system : CI框架的系統(tǒng)文件,也是源碼閱讀的主要部分PHP應(yīng)用
user_guide : 用戶指導(dǎo),類似于離線的用戶手冊.PHP應(yīng)用
CI框架需要配置的地方比較少:PHP應(yīng)用
1. 配置routesPHP應(yīng)用
Routes.php中配置的是默認的應(yīng)用程序控制器和404頁面. 打開application/config/routes.php文件, 配置如下:PHP應(yīng)用
$route['default_controller'] = "index"; $route['404_override'] = '';
2. 配置數(shù)據(jù)庫database.phpPHP應(yīng)用
如果你的應(yīng)用程序需要提供動態(tài)內(nèi)容,那么數(shù)據(jù)庫幾乎是必不可少的配置.打開application/config/database.php文件,該文件內(nèi)容如下:PHP應(yīng)用
PHP應(yīng)用
CI框架是支持多數(shù)據(jù)流連接的,default是當(dāng)前默認的連接,active_record用于指定是否啟用ARM(Active Record Model).每個配置項非常簡明,這里不再做過多介紹.PHP應(yīng)用
3. 去掉index.phpPHP應(yīng)用
現(xiàn)在訪問你的應(yīng)用程序,url應(yīng)該類似于這樣:PHP應(yīng)用
test.xq.com/index.php/index test.xq.com/index.php/welcome
注意每個哀求都會帶有index.php段.去掉index.php會讓URI更加美觀.PHP應(yīng)用
打開剛剛添加的test.xq.com.conf文件,在server中添加如下配置:PHP應(yīng)用
if ($request_filename !~* /(favicon.ico|static|uploads|js|javascript|css|images|robots\.txt|index\.php|index\.html)) { rewrite ^/(.*)$ /index.php?$1 last; }
重啟服務(wù)器后,現(xiàn)在,URL的訪問方式變成了:PHP應(yīng)用
test.xq.com/index test.xq.com/welcome
是不是簡潔多了 :DPHP應(yīng)用
4. 添加.html訪問后綴PHP應(yīng)用
可能還有人喜歡url中添加特定的后綴,例如.html后綴使你的應(yīng)用程序更類似于一系列靜態(tài)文件.配置方法是,在application/config/config.php中,更改如下配置為:PHP應(yīng)用
$config['url_suffix'] = '.html';
CI框架的更多配置可以參考:PHP應(yīng)用
讓Nginx支持.htaccess(本文沒有提及使用.htaccess重寫的內(nèi)容,可以參考之)http://www.php100.com/html/program/nginx/2013/0905/5537.htmlCI框架集成Smarty,習(xí)慣用smarty模板引擎的童鞋可以看看 http://www.kankanews.com/ICkengine/archives/70302.shtml 配置VhostPHP應(yīng)用
為了方便訪問(相比ip地址訪問的方式,域名訪問有更好的可記憶性),我們可以配置vhost,配置方式為:進入nginx的vhost目錄,新建配置文件(本文中為test.xq.com.conf,一般情況下,我們的每個vhost都會以域名命名).在配置文件中輸入如下內(nèi)容:PHP應(yīng)用
server { listen 80; server_name test.xq.com; root /usr/nginx/html/CI/; access_log logs/xq_access_log main; error_log logs/testsq.log error; charset GBK; index index.php; location ~ .*\.(php|php5)?$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } }
Server中暫時沒有其他rewrite配置,稍后在配置CI框架的時候,我們可以添加更多的配置類支持CI的友好URL.PHP應(yīng)用
打開本地的host文件,在host中添加條目:PHP應(yīng)用
10.130.130.130 test.xq.com
其中10.130.130.130應(yīng)該是你的服務(wù)器的IP地址.PHP應(yīng)用
現(xiàn)在,在瀏覽器中可以通過域名訪問CI框架了.PHP應(yīng)用
框架流程 PHP應(yīng)用
在結(jié)束本文之前,我們再看看CI框架的基本流程,這個流程將貫穿源碼閱讀的始終,所以,很有必要認真研讀一下.引用CI框架用戶手冊的上的流程圖:PHP應(yīng)用
PHP應(yīng)用
基本的執(zhí)行流程如下:PHP應(yīng)用
Index.php是前端控制器,初始化框架所需的所有資源,加載應(yīng)用程序基本配置,接收所有用戶的哀求,并通過Route路由用戶哀求若緩存文件存在,它將繞過通常的執(zhí)行順序,直接發(fā)送到客戶端.Security數(shù)據(jù)過濾.這位于應(yīng)用程序控制器裝載之前.應(yīng)用程序控制器加載數(shù)據(jù)庫驅(qū)動、類庫、業(yè)務(wù)邏輯類和可能的其他資源,處理用戶的哀求視圖發(fā)送到客戶端.如果開啟緩存,則視圖會被緩存,用于之后的哀求.PHP應(yīng)用
歡迎參與《PHP實例:CI框架學(xué)習(xí)筆記(一) - 環(huán)境安裝、基本術(shù)語和框架流程》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14416.html