與許多開(kāi)發(fā)框架一樣,F(xiàn)leaPHP通常也使用一個(gè)入口文件來(lái)啟動(dòng)框架,并運(yùn)行應(yīng)用程序代碼。雖然FleaPHP并不要求應(yīng)用程序必須使用單一" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

FleaPHP 開(kāi)發(fā)指南 - 3. 應(yīng)用程序入口

系統(tǒng) 2774 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

與許多開(kāi)發(fā)框架一樣,F(xiàn)leaPHP 通常也使用一個(gè)入口文件來(lái)啟動(dòng)框架,并運(yùn)行應(yīng)用程序代碼。雖然 FleaPHP 并不要求應(yīng)用程序必須使用單一的入口文件,不過(guò)在本系列文章中,我大部分時(shí)間都使用單一入口文件。


單一入口應(yīng)用程序

在 FleaPHP 應(yīng)用程序使用 MVC 模式時(shí),應(yīng)用程序的所有功能都通過(guò)一個(gè)單一的文件來(lái)調(diào)用。這種通過(guò)單一文件來(lái)執(zhí)行所有功能的應(yīng)用程序,稱為單一入口應(yīng)用程序。有關(guān)單一入口應(yīng)用程序的一些信息,可以參考 ChinaUnix 上的一篇帖子 。

許多著名的 PHP 應(yīng)用程序都是單一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。當(dāng)然也有 phpMyAdmin 這樣的非單一入口應(yīng)用程序。


創(chuàng)建入口文件

現(xiàn)在,我們來(lái)創(chuàng)建一個(gè)最簡(jiǎn)單的入口文件。打開(kāi)文本編輯器,創(chuàng)建 htdocs/index.php 文件,內(nèi)容如下:

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

現(xiàn)在啟動(dòng)瀏覽器,輸入地址: http://localhost/index.php ,應(yīng)該就可以看到如下的畫面:

這個(gè)畫面顯示了一個(gè)錯(cuò)誤信息,但是也表明 index.php 中的兩行代碼已經(jīng)成功啟動(dòng)了 FleaPHP 框架。


實(shí)現(xiàn)我們的第一個(gè)控制器

在 FleaPHP 應(yīng)用程序中,應(yīng)用程序包含多個(gè)控制器。每一個(gè)控制器又提供一組控制器動(dòng)作(后文及本系列文章中都簡(jiǎn)稱為“動(dòng)作”)。每一個(gè)瀏覽器發(fā)送給 FleaPHP 應(yīng)用程序的請(qǐng)求,都是由一個(gè)動(dòng)作來(lái)處理的。將一組相關(guān)的動(dòng)作集中到一起,就形成了一個(gè)控制器。

現(xiàn)在我們來(lái)實(shí)現(xiàn)第一個(gè)控制器:

創(chuàng)建 htdocs/APP/Controller 目錄,并創(chuàng)建文件 htdocs/APP/Controller/Default.php (注意嚴(yán)格匹配目錄名和文件名的大小寫),內(nèi)容如下:

      
        
          <?php </span>
          
            class
          
           Controller_Default{ 
          
            function
          
           actionIndex() { 
          
            echo
          
          
            "My first controller."
          
          ; }}
          
            ?>
          
        
      
    

同時(shí)修改 index.php 入口文件,內(nèi)容改為:

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

現(xiàn)在切換到瀏覽器,點(diǎn)擊“刷新”按鈕,可以看到 Default.php 文件中的 actionIndex 方法正確執(zhí)行了。

從剛剛這個(gè)例子可以看到,每一個(gè)控制器實(shí)際上就是一個(gè)類,而一個(gè)動(dòng)作則是該類的一個(gè)方法。


添加更多的動(dòng)作

現(xiàn)在我們?yōu)檫@個(gè)控制器添加更多的 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 并按回車鍵??梢钥吹捷敵鰞?nèi)容改變了。

由此可見(jiàn),action 參數(shù)的值決定了要調(diào)用控制器中的哪一個(gè)動(dòng)作方法。在上面的例子中,action=say 時(shí),調(diào)用的動(dòng)作方法為 actionSay。因?yàn)?FleaPHP 默認(rèn)要求每一個(gè)動(dòng)作方法必須加上前綴 action。如果不提供 action 參數(shù),則名為 index 的動(dòng)作方法 actionIndex() 會(huì)被調(diào)用。


實(shí)現(xiàn)更多的控制器

創(chuàng)建新文件 htdocs/APP/Controller/Book.php,并輸入內(nèi)容:

      
        
          <?php </span>
          
            class
          
           Controller_Book{ 
          
            function
          
           actionIndex() { 
          
            echo
          
          
            "Book controller default action."
          
          ; } 
          
            function
          
           actionSayTitle() { 
          
            echo
          
           h(
          
            ">"
          
          ); }}
          
            ?>
          
        
      
    

現(xiàn)在切換到瀏覽器,輸入地址 http://localhost/index.php?controller=Book&action=sayTitle ,并按回車鍵??梢钥吹轿覀兂晒Φ恼{(diào)用了另一個(gè)控制器的動(dòng)作方法。

與使用 action 參數(shù)指定要調(diào)用的動(dòng)作類似,用 controller 參數(shù)可以指定要調(diào)用的控制器。而此時(shí) action 參數(shù)指定的就是該控制器的動(dòng)作。

<!-- generated by Texy! -->


FleaPHP 開(kāi)發(fā)指南 - 3. 應(yīng)用程序入口


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 乱人伦精品一区二区 | 久久精品久久精品国产大片 | 性夜黄a爽爽免费视频国产 性夜影院爽黄a爽免费看网站 | 亚洲高清在线观看看片 | 亚洲精品国产一区二区三区在 | 欧美亚洲精品一区二三 | 亚洲国产成人九九综合 | 国产日韩欧美中文字幕 | 日本 毛片基地-亚洲 | 精品国精品国产自在久国产应用 | 国产综合成人久久大片91 | 99热国产这里只有精品免费 | 国产精品91在线 | 亚洲第成色999久久网站 | 久久天天躁狠狠躁夜夜爽蜜月 | 亚洲视频成人 | 野花成人 | 亚洲一区二区天海翼 | 国产h片在线观看 | 91在线激情在线观看 | 亚洲国产精品乱码在线观看97 | 国产成人啪一区二区 | 三及毛片| 91亚洲精品久久91综合 | 欧美日韩亚洲一区二区三区 | 亚洲男人的天堂久久无 | 97人人在线观看 | 欧美做爰xxxⅹ在线视频hd | 久久不卡 | 九一视频在线 | 99国产精品九九视频免费看 | 亚洲伊人久久综合影院2021 | 日韩欧美成末人一区二区三区 | 天天曰夜夜操 | 国产亚洲片 | 日韩精品麻豆 | 亚洲精品亚洲人成在线 | 国产亚洲精品福利 | 久久一区不卡中文字幕 | 日本a视频 | 久久精品亚洲牛牛影视 |