[PHP] 好用 Web Framework : CodeIgniter 安裝教學
Apr 17th, 2009 by appleboy 參觀者:11,095Views 機器人:272Views
最近都在 survey 一堆 PHP Web Framework,自己想學一套可以馬上上手的,其實因為目前在 PHP 的開發上面講求速度,以及程式的可維護性,雖然我自己有一套自己的開發方法,包含包好的 SQL Class 以及上傳模組,不過還是覺得熟悉一套 MVC 架構的寫法,將來維護或者是團隊合作方面會比較好分工,在小專案上面還可以自己來,但是大型專案就必須靠 MVC Framework 了,畢竟一個人寫程式,永遠比不上團隊合作,紀錄一下最近找到的一些網路比較多人用的 FrameWork:
上面這幾套,我目前用過 Zend Framework 跟 CakePHP,這兩套在文件方面都非常多,以台灣的開發者相當推崇這兩套,至於好不好上手,看個人的狀況了,在我用一個禮拜開發 Zend AUTH 跟 login 還有 Google Calendar API,可以參考 Zend Framework Tag,那這不是重點,這次要介紹 Web Framework : CodeIgniter,今天花了一些時間安裝了 CodeIgniter,來紀錄安裝心得,包含 .htaceess 設定,css 路徑的解決,那也可以參考這一篇中文安裝,大陸那邊已經有了簡體版的官方網站,不過英文官方文件就已經寫的很清楚了,大家可以閱讀英文就可以了。
安裝方法如下:首先下載最新版 1.7.1 版本,解壓縮之後,可以看到兩個資料夾 system 跟 user_guide 還有一個 index.php 檔案,user_guide 這裡面就跟網站上的 Doc 是一樣的,方便您離線閱讀文件,那重點只剩下 system 跟 index.php 了,其實如果都沒有改的話,只要瀏覽器打入 http://網址,這樣就可以看到 welcome 的畫面了

這樣其實很容易吧,您一定很想知道怎麼會預設讀這個檔案呢,那就是在 system/application/config 裡面的 routes.php 裡面設定的,找到
這就是預設的 Controller,所以 index.php 會先去載入 welcome.php 這隻檔案,放在 system/application/controllers/welcome.php
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
}
function index()
{
$this->load->view('welcome_message');
}
}
/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */
注意 Conrtroller 第一個字母要大寫喔,所以是寫 Welcome,網址只需要打 http://localhost/CodeIgniter/ 這樣就可以看到畫面,那也可以打入 http://localhost/CodeIgniter/index.php/welcome,會看到同樣的畫面,我們可以利用 mod_rewrite 方式把 index.php 拿掉,只要在根目錄新增 .htaccess 檔案,寫入底下程式碼:
RewriteBase /CodeIgniter/
RewriteCond $1 !^(index\.php|css|flash|images|img|includes|js|language|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
首先因為我的子目錄是 CodeIgniter,所以必須設定 RewriteBase,如果你是根目錄,那就取消這行,RewriteCond 這邊如果網站有 images 或者 css 檔案,請加上去,不然所有檔案都被導入到 index.php,這樣網站圖片 css 效果都不會出來,可以參考 wiki 或者是論壇這篇文章,接下來自己寫一個 Blog.php 的 controller 檔案,檔內容如下:
class Vbs extends Controller {
function __construct()
{
parent::Controller();
}
function _remap($method)
{
if ($method == 'comments')
{
$this->$method();
}
else
{
$this->header();
$this->footer();
}
}
function header()
{
$this->load->helper('url');
$data = array(
'sitename' => 'VBS禾唐-VBS安穩煞車器 行車更安全',
'page_title' => '首頁'
);
$this->load->view('header',$data);
}
function footer()
{
$this->load->view('footer');
}
}
?>
其中 $this->load->helper(’url’); 是抓取您設定的 url 網址
* 這會去抓取 application/config/config.php 裡面的 $config['base_url'] = "http://localhost/CodeIgniter/";
*/
$this->load->helper('url');
目前還在摸索中,如果還有心得,會在繼續追加。

可以也看看Yii
另外你這篇文章
http://blog.wu-boy.com/2007/09/22/120/
還是沒回我 怎麼會有 ezmobo 的字串呀…..
[...] Comments « [PHP] 好用 Web Framework : CodeIgniter 安裝教學 [...]
您好-
可以請教置入MVC時,M-V-C的導入順序是?
看了教學,感覺V還是得先出來;M跟C好像只有C在運作?
跟以往看到的教學不太一樣……
大大有空的話,可以為講解一下嗎….謝謝!
程式的初手,有些觀念…………雜><”
基本上,MVC 的定義是,Controller 去決定是否要用到 Model,或者是 Views,所以你說 M 跟 C 只有 C 在運作,不如說是 C 沒有去呼叫 M 進來,你可以參考底下這張 CodeIgniter 流程圖,我想你會更瞭解
Application Flow Chart
http://codeigniter.com/user_guide/overview/appflow.html
請問一下,我是剛學習的新手
執行您上面 Blog.php的程式後,出現了以下的問題,可以請A大給我點指點嗎??
An Error Was Encountered
Unable to load the requested file: header.php
謝謝您,以後如果有需要我會去論壇發問的,謝謝。
Unable to load the requested file: header.php 這句話很明顯吧,先去程式碼把這段刪除或者是 mark 起來
恩恩,小弟早上起來找到原因了,感謝您的指點。