程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Zend Framework框架簡單配置

Zend Framework框架簡單配置

編輯:關於PHP編程

由於項目需要用到Zend Framework框架,所以現在開始深入學習這個框架。第一課總是,輸出Hello World。

配置Zend Framework運行的PHP環境

首先確認你的PHP環境,Zend Framework 要求 PHP版本不低於5.1.4,但強烈建議使用 5.2.3 或更高版本,因為在這兩個版本之間有許多重大安全和性能方面的改善和提高。

PHP環境配置好了之後,請打開php.ini文件,確認PDO擴展是否打開。如果沒有請把extension=php_pdo.dll之前的;號給去掉。

打開APACHE文件夾裡面的httpd.conf文件,查找到apache的mod_rewrite模塊,確認LoadModule rewrite_module modules/mod_rewrite.so是否打開。如果沒有請去掉它前面的#號。

查找到httpd.conf文件,如果AllowOverride為None的話,請一定把None都改成all,這樣你寫.htaccess這樣的文件才會起到作用。

重新啟動你的APACHE服務器,這樣我們的PHP環境就可以運用Zend Framewrok了。

配置Zend Framework項目

項目文件夾如下:

下面介紹下需要修改的文件名與其代碼。

index.php(網站入口)文件及說明:

<?php
	/*
	 * Date: 2010.11.19
	 * Author:Gonn By www.bkjia.com
	 * Email:[email protected]
	 * QQ:252211974
	 * Blog:http://www.bkjia.com
	 */
	error_reporting(E_ALL|E_STRICT);
	date_default_timezone_set('Asia/Shanghai');
	
	set_include_path('.' .PATH_SEPARATOR .'./library'.PATH_SEPARATOR .'./application/models/'.PATH_SEPARATOR . get_include_path());
	//require_once 'Zend/Loader.php';
	//Zend_Loader::registerAutoload();		//設置Zend Framework 自動載入類文件
	require_once "Zend/Loader/Autoloader.php";
	Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
	$registry = Zend_Registry::getInstance(); 
	$view = new Zend_View();
	$view->setScriptPath('./application/views/scripts/');	//設置模板顯示路徑
	$registry['view'] = $view;	//注冊View
	//設置控制器
	$frontController =Zend_Controller_Front::getInstance();
	$frontController->setBaseUrl('/zendframework')	//設置基本路徑
					->setParam('noViewRenderer', true)
					->setControllerDirectory('./application/controllers')
					->throwExceptions(true)
					->dispatch();
?>

IndexController.php文件及說明:

<?php
class IndexController extends Zend_Controller_Action
{	
	function init()
    {
        $this->registry = Zend_Registry::getInstance();
        $this->view = $this->registry['view'];
        $this->view->baseUrl = $this->_request->getBaseUrl();
            
    }
    
	/*
	 * 輸出Hello World 的Action(動作)!
	 */
	function indexAction() 
    { 
      	//這裡給變量賦值,在index.phtml模板裡顯示
        $this->view->bodyTitle = '<h1>Hello World!</h1>';
		echo $this->view->render('index.phtml');//顯示模版  
    } 
}
?>

index.phtml模板文件說明:

<?=$this->bodyTitle; ?>

在浏覽器輸入:http://localhost/zendframework/,即可輸出Hello World。

PS:關於錯誤提示Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead

從1.8.0版本開始不推薦使用Zend_Loader::autoload,Zend_Loader::autoload會在2.0.0版本中移除,推薦使用Zend_Loader_Autoloader來替代Zend_Loader::autoload.

如果將

require_once('Zend/Loader.php'); 
Zend_Loader::registerAutoload();

改成

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

會提示Fatal error: Class 'Templater' not found in /var/www/phpweb20/htdocs/index.php on line 35

我想應該是加載類失敗吧,因為路徑裡面明明就有'Templater'類,那問題應該還是出現在Zend_Loader_Autoloader中。

只要改為

require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

就OK了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved