php中頁面控制器是什麼意思?

來源:互聯網
上載者:User
<?php/*頁面控制器模式:按我的理解就是將商務邏輯和視圖分離開來(通常最簡便的寫法是php和html代碼是混合在一個檔案裡面的),即一個商務邏輯檔案對應一個視圖檔案。    程式碼範例即註解如下:*///頁面控制器模式namespace woo\controller;//商務邏輯檔案 (檔案名稱AddVenue.php)abstract class PageController {   //基類private $request;function __construct (){    $request = \woo\base\RequestRegistry::getRequest();        //通過註冊表類擷取一個處理使用者請求資訊的類if(is_null($request)){$request = new Request();        }$this->request = $request;    }    abstract function process();    function forward($resource){        //跳轉include($resource);exit(0);    }    function getRequest(){return $this->request;    }}class AddVenueController extends PageController { //這個類的作用就是向資料庫寫入一個venue資料(資料表結構類似:id,name)        function process(){try{$request = $this->getRequest();$name = $request->getProperty('venue_name');                //擷取使用者提交的venue的名稱if(is_null($request->getProperty('submitted'))){            //判斷是否表單提交,否的話跳轉到add_nenue.php$request->addFeedback("choose a name for the venue");    $this->forward('add_nenue.php');                                    } else if (is_null($name)){                                    //判斷表單提交是否有name $request->addFeedback("name is a required field");    $this->forward('add_venue.php');                        //跳轉add_venue.php            }        $venue = new \woo\domain\Venue(null,$name);                    //建立對象便可將它添加到資料庫,具體內部的商務邏輯不必深究。$this->forward("ListVenues.php");                            //添加成功後跳轉ListVenues.php,即一個列表資料的顯示介面    } catch(Exception $e){$this->forward('error.php');                                //跳轉到一個錯誤介面                    }    }}$controller = new AddVenueController();                                    //執行這個類的process()方法$controller->process();?><?php //視圖檔案 (檔案名稱add_venue.php)require_once("woo/base/RequestRegistry.php");$request = \woo\base\RequestRegistry::getRequest();?><html><head><title>Add Venue</title></head><body>    <h1>Add Venue</h1>    <table>    <tr>        <td>        <?php print $request->getFeedbackString('</td></tr><tr><td>')?>        </td>    </tr>    </table>    <form action="AddVenue.php" method="get">        <input type="hidden" name="submitted" value="yes" />        <input type="text" name="venue_name" />    </form></body></html>
相關文章

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.