<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[info]從上節課iWebShop的運行機制知道,初始化之后,第一個運行的部件就是控制器Controller, 這一節課就說明Controller的用法。 ## 一、URL解析 上節講到,iWebCore 接受用戶的請求之后,URLManager會對URL進行分析,找到指定的控制器的一個Action運行程序。以下通過一個請求來說明如何解析的。 >[info]如請求為:http://域名/index.php?controller=site&action=products&id=9 > >>[danger]index.php為統一口文件 >> >>controller=site&action=products 表示請求的是控制器site下的products函數 >> >>id=9為傳遞參數,由action接收 那么,我們怎么知道這個請求執行了什么?先依次從controllers下找到文件site.php,打開文件找到function products,以上請求解析完成之后執行的就是這個函數,在這個函數中能看到獲取了傳遞參數為id, 之后就是業務邏輯。 ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160720181059.png) products執行之后,顯示商品頁面如下: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160720182148.png) ## 二、控制器的規則 * 控制器的PHP文件必須放在controllers下,文件名都用小寫字母,不要包含其他字符 * 控制器就是一個類,這個類必須要繼承IController,類名的第一個字母要大寫 * 類名和文件名要保持一致 ~~~ class Site extends IController { function init() { //初始化代碼 } function xxxx{ //運行的程序代碼 } } ~~~ * 每個類都有一個init方法,如上,在對象初始化時執行。 * 控制器的開發遵循PHP面向對象的原則,一切PHP面向對象的規則都支持。 ## 三、控制器實例 在controllers目錄下建一個文件test.php,代碼如下: ~~~ <?php class Test extends IController { public function helloworld(){ echo "hello world"; } } ?> ~~~ 運行得到的結果如下: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160720195541.png) ## 四、如何給模板渲染數據 一共有 2 種方法可以把控制器里面的數據傳遞給模板,可以通過【類屬性】和【$this->setRenderData】 ~~~ function show() { $this->title="123456";//類屬性 $this->setRenderData(array('title'=>'123456'));//setRenderData $this->redirect("show");//跳轉到控制器模板文件show中 } ~~~ 第一行**【推薦】**:展示了第一種傳值方式,通過類屬性賦值操作,把字符串“1234567”賦值給了 $this->title 第二行: 展示了第二種傳值方式, 通過控制器自身方法 setRenderData 把參數數組里面的鍵變成模板里面的變量 第三行:把視圖引入進來, 引入控制器下的 show.html >[danger]注意:如果要給視圖渲染數據那么要引入的視圖名字必須和 action 方法名字相同,即function方法名字叫 show,要顯示的視圖也必須叫 show。 當然如果方法名稱和視圖名稱不一致卻仍想渲染數據,需要在最后的 redirect方法中增加第二個參數——false 比如要把$this->title傳遞給 test1.html 視圖,那么第三行就要寫成: $this->redirect(‘test1’,false); 此時就可以實現顯示 test1.html,并且帶著 show方法里面的數據了 >[info]模板文件可以直接通過以下方式來顯示數據 ~~~ <h2>$this->title</h2> <h3>$title</h3> ~~~ >[warning]如有不明白的地方,留言或是加入我們?“三眾技術QQ交流群”一起討論 ## 關于我們 >[danger][三眾科技](http://www.sunzoon.com)資訊平臺——大道至簡,悅你所閱! >本教程由[三眾簡悅](http://it.sunzoon.com)原創,轉載請注明出處,作者:bobball,由bobo整理成看云書籍 三眾技術交流群:**543102562** 歡迎大家加入我們,共同討論IT,互聯網技術。同時可以掃描下面的二維碼關注我們,謝謝! ![三眾科技服務號](http://it.sunzoon.com/wp-content/uploads/2016/06/qrcode_for_gh_401d25b05314_344.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看