作者aquarianboy (我是没牌的营养师!)
看板PHP
标题[心得] Zend Framework安装
时间Tue Aug 14 01:51:00 2007
Zend Framework安装
URL:
http://www.eddie.com.tw/blog/?p=103
环境:
Windows XP Professional(SP2)
Appserv(Apache 2.2.4, PHP/5.2.3, MySQL 5.0.45)
Zend Framework 1.0.1(2007-07-30)
========================
一、基本设定:
========================
1. 设定mod_rewrite
为了让网址变得更整齐乾净,使用这个可以轻松的达成
编辑httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
如果前面的"#"字在的话,就把它拿掉吧
(mod_rewrite的详细资料,可参考apache网站)
2. 设定include_path
设定include path之目的,是为了方便在include类别时,省去输入长长一串位置的时间
a) 可直接修改php.ini之设定
b) 或是於程式中动态加入set_include_path
参考网址:
http://tw2.php.net/set_include_path
3. 设定httpd.conf之document root
请参考下一段之目录架构,将document root指向/html
以上设定完之後,请重新启动Apache,并建议检视一下error log
看是否有错误的地方
========================
二、Zend Framework设定
========================
1.基本目录架构
|-/application
|-/controllers (MVC之C)
|-/models (MVC之M)
|-/views (MVC之V)
|-/filters
|-/helpers
|-/scripts
|-/html
|-/images (存放影像档案)
|-/scripts (存放script档)
|-/styles (存放CSS档)
|-.htaccess (配合url rewrite之档案)
|-index.php (bootstrap file)
|-/library
|-/Zend (这个是ZF的library,可从ZF网站下载)
2. 档案设定
a)index.php(bootstrap file),可视各别情况修改
<?php
//Basic Config
error_reporting(E_ALL | E_STRICT); //设定Error Report的等级
date_default_timezone_set('Asia/Taipei'); //设定时区为台北
//Include path
define ('P_S', PATH_SEPARATOR);
set_include_path('.' .P_S .'../library' .P_S .'../application/models/' .P_S
.get_include_path());
//漏了这两行 :)
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
//Controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory('../application/controllers');
$frontController->dispatch();
?>
b).htaccess设定:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
基本上这样设定完,就差不多把环境建置好了
接下来,就是开始设定各别Controller的工作了
PS1:在windows系统下要做出.htaccess,可以直接用记事本来做
存档的时候,选择「存档类型(T)」为「所有档案」,即可直接输入档名.htaccess而不
会发生错误
PS2:其它目录也可加个.htaccess档来保护目录里的资料
内容为:
deny from all
========================
三、Controller设定
========================
先设定一个最基本的IndexController
架构参阅上一段落
|-/application
|-/controllers (MVC之C)
|-IndexController.php (Index的Controller) <-新增这个
|-/models (MVC之M)
|-/views (MVC之V)
|-/filters
|-/helpers
|-/scripts
|-/index <--新增这个目录
|-index.phtml <--新增这个档案
|-happy.phtml <--新增这个档案
a) IndexController.php
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action{
public function indexAction(){
//可以在写index的Action
}
public function happyAction(){
//可以在这里写happy的Action
}
}
?>
b) index.phtml & happy.phtml
这个是indexAction的view,当执行indexAction时,预设会找同名名档案,并render
页面内容
Controller简单的设定大概这样就完成了(细节可再参观ZF的Document或是其它高手
们的Tutorial)
接下来,打开browser,输入网址:
http://127.0.0.1/
或是
http://127.0.0.1/index
这两个网址,它都会找IndexController里index这个action
然後会找index.phtml来render页面内容
http://127.0.0.1/index/happy
它则是会找IndexController里happy这个action
然後会找happy.phtml来render页面内容
基本上到这里,就把这个小小的MVC架构做出来了
下一回,再来写个自己做的简单的通讯录的CRUD(Create, Read, Update, Delete)
初试php的Framework,难免有些地方写得不好,还请多指教 :)
程式码有需要断行的地方,再麻烦自己接起来罗 :)
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.172.127
1F:推 ylk:好文!辛苦了! 08/14 02:16
2F:推 EvilBrave:很想自己也来试试看 感谢分享XD 08/14 09:11
3F:推 oioallen:辛苦了 08/14 09:29
4F:推 superGA:good job 08/14 09:39
5F:推 jackaldog:推~ 08/14 10:48
6F:推 PsMonkey:看不懂也来推... [逃] 08/14 14:05
7F:→ carls:index.php是不是要include一下Front.php呢? 08/14 14:21
※ 编辑: aquarianboy 来自: 220.133.136.167 (08/14 14:37)
8F:推 aquarianboy:已修正,感谢提醒 :) 08/14 14:37
9F:→ carls:好像html的目录.htaccess要把RewriteEngine off ? 08/14 19:16
10F:→ aquarianboy:试了一下,如果off的话controller会找不到路径? :) 08/14 19:33
11F:推 ottokang:给你个M 08/16 08:54