與許多開發框架一樣,FleaPHP 通常也使用一個入口文件來啟動框架,并運行應用程序代碼。雖然 FleaPHP 并不要求應用程序必須使用單一的入口文件,不過在本系列文章中,我大部分時間都使用單一入口文件。
單一入口應用程序
在 FleaPHP 應用程序使用 MVC 模式時,應用程序的所有功能都通過一個單一的文件來調用。這種通過單一文件來執行所有功能的應用程序,稱為單一入口應用程序。有關單一入口應用程序的一些信息,可以參考 ChinaUnix 上的一篇帖子 。
許多著名的 PHP 應用程序都是單一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。當然也有 phpMyAdmin 這樣的非單一入口應用程序。
創建入口文件
現在,我們來創建一個最簡單的入口文件。打開文本編輯器,創建 htdocs/index.php 文件,內容如下:
<?php </span>
require
(
'FLEA/FLEA.php'
);run();
?>
現在啟動瀏覽器,輸入地址: http://localhost/index.php ,應該就可以看到如下的畫面:
這個畫面顯示了一個錯誤信息,但是也表明 index.php 中的兩行代碼已經成功啟動了 FleaPHP 框架。
實現我們的第一個控制器
在 FleaPHP 應用程序中,應用程序包含多個控制器。每一個控制器又提供一組控制器動作(后文及本系列文章中都簡稱為“動作”)。每一個瀏覽器發送給 FleaPHP 應用程序的請求,都是由一個動作來處理的。將一組相關的動作集中到一起,就形成了一個控制器。
現在我們來實現第一個控制器:
創建 htdocs/APP/Controller 目錄,并創建文件 htdocs/APP/Controller/Default.php (注意嚴格匹配目錄名和文件名的大小寫),內容如下:
<?php </span>
class
Controller_Default{
function
actionIndex() {
echo
"My first controller."
; }}
?>
同時修改 index.php 入口文件,內容改為:
<?php </span>
require
(
'FLEA/FLEA.php'
);import(
dirname
(__FILE__) .
'/APP'
);run();
?>
現在切換到瀏覽器,點擊“刷新”按鈕,可以看到 Default.php 文件中的 actionIndex 方法正確執行了。
從剛剛這個例子可以看到,每一個控制器實際上就是一個類,而一個動作則是該類的一個方法。
添加更多的動作
現在我們為這個控制器添加更多的 Action 方法:
<?php </span>
class
Controller_Default{
function
actionIndex() {
echo
"My first controller."
; }
function
actionSay() {
echo
"Oh, FleaPHP great!"
; }}
?>
切換到瀏覽器,將瀏覽地址從 http://localhost/index.php 改為 http://localhost/index.php?action=say 并按回車鍵。可以看到輸出內容改變了。
由此可見,action 參數的值決定了要調用控制器中的哪一個動作方法。在上面的例子中,action=say 時,調用的動作方法為 actionSay。因為 FleaPHP 默認要求每一個動作方法必須加上前綴 action。如果不提供 action 參數,則名為 index 的動作方法 actionIndex() 會被調用。
實現更多的控制器
創建新文件 htdocs/APP/Controller/Book.php,并輸入內容:
<?php </span>
class
Controller_Book{
function
actionIndex() {
echo
"Book controller default action."
; }
function
actionSayTitle() {
echo
h(
">"
); }}
?>
現在切換到瀏覽器,輸入地址 http://localhost/index.php?controller=Book&action=sayTitle ,并按回車鍵。可以看到我們成功的調用了另一個控制器的動作方法。
與使用 action 參數指定要調用的動作類似,用 controller 參數可以指定要調用的控制器。而此時 action 參數指定的就是該控制器的動作。
<!-- generated by Texy! -->
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
