国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

走進Zend Framework框架編程3(運行第一個程序)

2019-11-17 04:11:23
字體:
來源:轉載
供稿:網友

運行第一個程序

框架主要是為了提高開發效率和支持多人團隊開發而發明的。傳統的平面式開發總是讓每個軟件項目從零開始,程序員不得不重復“制造輪子”的工作;而界面(html+CSS+javascript)與程序邏輯的混雜使程序員與界面制作的角色很難分離開來,這有可能使得應用程序在其生命周期中變得無法維護。
ZF的做法是,為了提高應用程序的可維護性,它將程序的代碼分成如下三個不同的部分(通常也是獨立的文件):
模型(M):應用程序的模型部分。關心的是顯示的數據的細節。模型通常關注的是業務邏輯,以及如何從數據庫中存取數據。在具體的代碼中表現為一個一個不同的類,可以看做是一個用戶自定義的類庫。
視圖(V):視圖關心的是用戶顯示的內容,它通常是HTML。
控制器(C):控制器將模型和視圖結合起來,保證將正確的數據顯示到頁面上。
也就是說,Zend Framework使用Model-View-Controller(MVC)架構。它將程序中不同的部分獨立開來,使得應用程序的開發和維護變得更加容易。
1,ZF框架的設計思想和策略
ZF采用了前端控制器(Front Controller)設計模式,它把所有用戶的請求發送到一個中心控制點,具體做法就是所有的請求都需要通過index.php進入。然后通過index.php中的腳本把用戶請求分發到對應的控制器中,控制器負責調用模型中的邏輯和用戶界面的呈現。
2,Apache對ZF的支持
為了實現ZF的設計思想,需要Web服務器的支持。Apache服務器是通過其mod_rewrite功能來實現的。
2.1配置mod_rewrite擴展需要去掉Apache的配置文件httpd.conf中以下語句前的注釋符號#,使配置生效,即裝載mod_rewrite.so模塊。
LoadModule rewrite_module modules/mod_rewrite.so
還必須保證Apache已配置成支持.htaccess文件的模式。通常這可以通過在httpd.conf中將<Directory “C:PRogram FilesApache Software FoundationApache2.2htdocs”>

Options Indexes FollowSymLinks

#AllowOverride None

AllowOverride All

Order allow,deny

Allow from all

</Directory>
復制代碼中的AllowOverride None改成AllowOverride All來實現。如果沒有正確配置mod_rewrite及.htaccess,那么除了首頁外將不能看到任何其它的頁面。
保存配置,重啟Apache服務,使配置生效。
2.2 .htaccess文件的內容:
RewriteEngine on
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
意思是,讓RewriteEngine引擎啟動,并把對除過js、ico、gif、jpg、png、css等圖片、js腳本、css的請求,都發送到index.php文件中。
3,第一個程序的目錄結構
在htdocs下建立以下2個文件夾:phpchina1.com和app_phpchina1.com。
app_phpchina1.com下建立以下文件夾controllers、models、views。
這樣一來,典型的文件夾結構形如:
…htdocs
app_phpchina1.com
controllers
models
views
library
  Zend
phpchina1.com
phpchina1.com文件夾下存放index.php和.htaccess文件;
Controllers存放控制器文件;
models存放控制器文件;
views存放視圖文件;
注意這只是ZF所推薦的文件夾的組織形式,但并不是必須的形式。實際項目中可以根據自己的具體情況靈活變通,這一點本教程的后面會詳細的探討。如果應用特別簡單,models和views文件夾也許也用不到,我們下面的“最簡單的ZF程序”即是如此。
4,最簡單的ZF程序:Hello PHPChina1.com!
激動人心的時刻到了,我們講運行我們的第一個ZF程序。
Index.php文件內容如下:<?php

  error_reporting(E_ALL|E_STRICT);

  //設定時區

  date_default_timezone_set(’Asia/Shanghai’);

  //指明引用文件的路徑

  set_include_path(’.’ .

  PATH_SEPARATOR . ‘../library/’.

  PATH_SEPARATOR . ‘../App_phpchina.com/models/’.

  PATH_SEPARATOR . get_include_path());

  include “Zend/Loader.php”;

  Zend_Loader::registerAutoload();

  $fc = Zend_Controller_Front::getInstance();

  $fc->setControllerDirectory(array(

  “default”=>’../app_phpchina1.com/controllers’,

));

  $fc->throwExceptions(true);

  $fc->setParam(’noViewRenderer’, true);

  $fc->setParam(’noErrorHandler’, false);

  //開始運行程序

  $fc->dispatch();

?>

Controllers文件夾下IndexController.php文件的內容:

<?php

class IndexController extends Zend_Controller_Action

{

  function indexAction()

  {

echo “Hello PHPChina1.com!”;

  }

  function otherAction()

  {

echo “this is other Action.”;

  }

}

?>

復制代碼運行:
在瀏覽器地址欄輸入http://phpchica1.com:8080回車,瀏覽器將顯示結果:
Hello PHPChina1.com!
如果看到上述信息,恭喜你,成功了!
下一節將對這里的2個文件的代碼進行詳細解釋。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂源县| 通辽市| 沅陵县| 安达市| 祁阳县| 城市| 湄潭县| 临沂市| 广德县| 沈丘县| 雷山县| 岳阳县| 博爱县| 平度市| 金坛市| 雅江县| 剑川县| 宁陵县| 张家港市| 永康市| 广安市| 垦利县| 信宜市| 高雄市| 修武县| 金昌市| 唐山市| 牟定县| 隆回县| 汉川市| 九江县| 龙井市| 德兴市| 科尔| 唐山市| 莱阳市| 额济纳旗| 双流县| 留坝县| 白城市| 四子王旗|