2009年12月12日 星期六

Zend Framework 安裝筆記!!

今天在嘗試使用 Zend Framework 寫網站,其實很久以前就想要用它來寫了,無奈的是我連裝都裝不起來,所以一直無法如願,經過這麼久的時間,研究 PHP 的語法,決定再來挑戰一下,好死不死的被我弄成功了,趕快把過程記錄起來,免的以後我又忘了….0rz

首先到 Zend Framework 把它的程式抓下來,並且解壓縮丟到網站的根目錄,因為我是抓 Minimal 版的,所以只有 Library 的目錄,這是 Zend Framework 的核心檔案,把它放到根目錄,然後在根目錄再建立 application 目錄,裡面放置 Models、Views、Controllers 的相關檔案,然後在根目錄放上 index.php、 .htaccess 兩個檔案。
根目錄
|application
   |Controllers
   |Models
   |Views
      |scripts
   |bootstrap.php
|library
   |Zend
|public
   |index.php
   |.htaccess

再來就是建立 index.php,Zend Framework 是把所有的網址都透過 index.php 再往下抓 Controller、Action 來執行,下面是 Quick Start 的說明加上我的認知註解。
<?php
// 設定 application 路徑。
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// 在 include 的路徑裡,加上 library 的目錄路徑。
set_include_path(
APPLICATION_PATH . '/../library'
. PATH_SEPARATOR . get_include_path()
);

// 執行 Zend 的 Loader 中的 Autoload 把自動載入的程式都載入進去。
require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();

// 這裡是 require bootstrap.php,出現錯誤的時候,秀出錯在哪裡。
try {
require APPLICATION_PATH . '/bootstrap.php';
} catch (Exception $exception) {
echo '<html><body><center>'
. 'An exception occured while bootstrapping the application.';
if (defined('APPLICATION_ENVIRONMENT')
&& APPLICATION_ENVIRONMENT != 'production'
) {
echo '<br /><br />' . $exception->getMessage() . '<br />'
. '<div align="left">Stack Trace:'
$exception->getTraceAsString();
}
echo '</center></body></html>';
exit(1);
}

// 這我不知道...0rz
Zend_Controller_Front::getInstance()->dispatch();

接著是 .htaccess 。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

然後是建立bootstrap.php。
<?php
// 這是確認有設定 application,沒設定就補上設定。
defined('APPLICATION_PATH')
or define('APPLICATION_PATH', dirname(__FILE__));

defined('APPLICATION_ENVIRONMENT')
or define('APPLICATION_ENVIRONMENT', 'development');

// 取得 front controller。
$frontController = Zend_Controller_Front::getInstance();

// 設定 Controller 的目錄路徑。
$frontController->setControllerDirectory(APPLICATION_PATH . '/controllers');

// 很好...又是我不懂的地方...0rz
$frontController->setParam('env', APPLICATION_ENVIRONMENT);

// 把 之前取得的frontcontroller 清除掉。
unset($frontController);

接下來就是建立 Controller 跟 View 啦。
在 Controllers 目錄下建立IndexController.php, Views/scripts 底下建立目錄 index,裡面建一個 index.phtml。
<?php
// IndexController 是預設的 controller。
class IndexController extends Zend_Controller_Action
{
// 在所有 controller 中,預設的 action 都是 index。
public function indexAction()
{
// 這裡放上 index 這個 action 要做的事情。
}
}

這是 index.phtml 的內容。
<h1 align="center">
Hello, Zend Framework MVC!
</h1>

然後在瀏覽器打上 http://yourdomain/index,應該就可以看到 Hello, Zend Framework MVC! 了,這樣安裝就大功告成啦!!

沒有留言:

張貼留言