極速下載站 —— 提供優(yōu)質(zhì)軟件下載服務(wù),感受全新的極速下載體驗(yàn)!
最近更新 | 軟件專(zhuān)題 | 軟件分類(lèi) | 軟件排行
時(shí)間:2018-02-08 15:52:05 作者:不思議游戲 瀏覽量:6
Note: 這篇教程假設(shè)你已經(jīng)下載好 CodeIgniter ,并將其 安裝 到你的開(kāi)發(fā)環(huán)境。
你要做的第一件事情是新建一個(gè) 控制器 來(lái)處理靜態(tài)頁(yè)面,控制器就是一個(gè)簡(jiǎn)單的類(lèi), 用來(lái)完成你的工作,它是你整個(gè) Web 應(yīng)用程序的 “粘合劑” 。
例如,當(dāng)訪(fǎng)問(wèn)下面這個(gè) URL 時(shí):
http://example.com/article/latest/10
通過(guò)這個(gè) URL 我們就可以推測(cè)出來(lái),有一個(gè)叫做 "news" 的控制器,被調(diào)用的方法為 "latest" , 這個(gè)方法的作用應(yīng)該是查詢(xún) 10 條新聞條目并顯示在頁(yè)面上。在 MVC 模式里,你會(huì)經(jīng)常看到下面 格式的 URL :
http://example.com/[controller-class]/[controller-method]/[arguments]
在正式環(huán)境下 URL 的格式可能會(huì)更復(fù)雜,但是現(xiàn)在,我們只需要關(guān)心這些就夠了。
新建一個(gè)文件 application/controllers/Pages.php ,然后添加如下代碼。
<?php
class Pages extends CI_Controller {
public function view($page = 'home')
{
}
}
你剛剛創(chuàng)建了一個(gè) Pages 類(lèi),有一個(gè)方法 view 并可接受一個(gè) $page 參數(shù)。 Pages 類(lèi)繼承自 CI_Controller 類(lèi),這意味著它可以訪(fǎng)問(wèn) CI_Controller 類(lèi)( system/core/Controller.php )中定義的方法和變量。
控制器將會(huì)成為你的 Web 應(yīng)用程序中的處理請(qǐng)求的核心,在關(guān)于 CodeIgniter 的技術(shù)討論中,這有時(shí)候被稱(chēng)作 超級(jí)對(duì)象 。和其他的 PHP 類(lèi)一樣,可以在 你的控制器中使用 $this 來(lái)訪(fǎng)問(wèn)它,通過(guò) $this 你就可以加載類(lèi)庫(kù)、 視圖、以及針對(duì)框架的一般性操作。
現(xiàn)在,你已經(jīng)創(chuàng)建了你的第一個(gè)方法,是時(shí)候創(chuàng)建一些基本的頁(yè)面模板了,我們將 新建兩個(gè)視圖(頁(yè)面模板)分別作為我們的頁(yè)腳和頁(yè)頭。
新建頁(yè)頭文件 application/views/templates/header.php 并添加以下代碼:
<html>
<head>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?php echo $title; ?></h1>
頁(yè)頭包含了一些基本的 HTML 代碼,用于顯示頁(yè)面的主視圖之前的內(nèi)容。 另外,它還打印出了 $title 變量,這個(gè)我們后面講控制器的時(shí)候再講。 現(xiàn)在,再新建個(gè)頁(yè)腳文件 application/views/templates/footer.php ,然后添加以下代碼:
<em>© 2015</em>
</body>
</html>
在控制器中添加邏輯
你剛剛新建了一個(gè)控制器,里面有一個(gè) view() 方法,這個(gè)方法接受一個(gè)參數(shù) 用于指定要加載的頁(yè)面,靜態(tài)頁(yè)面模板位于 application/views/pages/ 目錄。
在該目錄中,再新建兩個(gè)文件 home.php 和 about.php ,在每個(gè)文件里隨便 寫(xiě)點(diǎn)東西然后保存它們。如果你沒(méi)什么好寫(xiě)的,就寫(xiě) "Hello World!" 吧。
為了加載這些頁(yè)面,你需要先檢查下請(qǐng)求的頁(yè)面是否存在:
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Whoops,we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header',$data);
$this->load->view('pages/'.$page,$data);
$this->load->view('templates/footer',$data);
}
當(dāng)請(qǐng)求的頁(yè)面存在,將包括頁(yè)面和頁(yè)腳一起被加載并顯示給用戶(hù),如果不存在, 會(huì)顯示一個(gè) "404 Page not found" 錯(cuò)誤。
第一行檢查頁(yè)面是否存在,file_exists() 是個(gè)原生的 PHP 函數(shù),用于檢查某個(gè) 文件是否存在,show_404() 是個(gè) CodeIgniter 內(nèi)置的函數(shù),用來(lái)顯示一個(gè)默認(rèn)的 錯(cuò)誤頁(yè)面。