FleaPHP 開發指南 - 3. 應用程式入口

來源:互聯網
上載者:User
程式|開發指南

與許多開發架構一樣,FleaPHP 通常也使用一個入口檔案來啟動架構,並運行應用程式代碼。雖然 FleaPHP 並不要求應用程式必須使用單一的入口檔案,不過在本系列文章中,我大部分時間都使用單一入口檔案。


單一入口應用程式

在 FleaPHP 應用程式使用 MVC 模式時,應用程式的所有功能都通過一個單一的檔案來調用。這種通過單一檔案來執行所有功能的應用程式,稱為單一入口應用程式。有關單一入口應用程式的一些資訊,可以參考 ChinaUnix 上的一篇文章。

許多著名的 PHP 應用程式都是單一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。當然也有 phpMyAdmin 這樣的非單一入口應用程式。


建立入口檔案

現在,我們來建立一個最簡單的入口檔案。開啟文字編輯器,建立 htdocs\index.php 檔案,內容如下:

<?phprequire('FLEA/FLEA.php');run();?>

現在啟動瀏覽器,輸入地址:http://localhost/index.php,應該就可以看到如下的畫面:

這個畫面顯示了一個錯誤資訊,但是也表明 index.php 中的兩行代碼已經成功啟動了 FleaPHP 架構。


實現我們的第一個控制器

在 FleaPHP 應用程式中,應用程式套件組合含多個控制器。每一個控制器又提供一組控制器動作(後文及本系列文章中都簡稱為“動作”)。每一個瀏覽器發送給 FleaPHP 應用程式的請求,都是由一個動作來處理的。將一組相關的動作集中到一起,就形成了一個控制器。

現在我們來實現第一個控制器:

建立 htdocs\APP\Controller 目錄,並建立檔案 htdocs\APP\Controller\Default.php (注意嚴格匹配目錄名和檔案名稱的大小寫),內容如下:

<?phpclass Controller_Default{    function actionIndex() {        echo "My first controller.";    }}?>

同時修改 index.php 入口檔案,內容改為:

<?phprequire('FLEA/FLEA.php');import(dirname(__FILE__) . '/APP');run();?>

現在切換到瀏覽器,點擊[重新整理] 按鈕,可以看到 Default.php 檔案中的 actionIndex 方法正確執行了。

從剛剛這個例子可以看到,每一個控制器實際上就是一個類,而一個動作則是該類的一個方法。


添加更多的動作

現在我們為這個控制器添加更多的 Action 方法:

<?phpclass 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,並輸入內容:

<?phpclass Controller_Book{    function actionIndex() {        echo "Book controller default action.";    }    function actionSayTitle() {        echo h("<< Boost up with FleaPHP >>");    }}?>

現在切換到瀏覽器,輸入地址 http://localhost/index.php?controller=Book&action=sayTitle,並按斷行符號鍵。可以看到我們成功的調用了另一個控制器的動作方法。

與使用 action 參數指定要調用的動作類似,用 controller 參數可以指定要調用的控制器。而此時 action 參數指定的就是該控制器的動作。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。