Zend Framework配置中的几个问题


Zend Framework 配置


一.
如果你使用了 .htaccess 文件, 启用了 RewriteEngine ,那么你要在 Apache 服务器中的 httpd.conf 做两件事:

1. 启用 mod_rewrite.so  -------大约在 http.conf 106行处,去掉
LoadModule rewrite_module modules/mod_rewrite.so 前的 "#".

2.  使 .htaccess 中的配置生效, 需设定 AllowOverride All  -------大约在 200行处, 原来默认的为 None

二.

如果你要在 Controller 类的动作方法中 使用 Zend_View ->render 来调用 视图脚本,必须将 视图渲染 ViewRenderer 关掉,因为Zendframe 默认它是开启的 (这样 Controller 类会默认去找 view/scripts/XXX/yyy.phtml  ------XXX你的控件器 XXXController, yyy你的动作YYYAction ),  只有将 ViewRenderer 关闭, 你才能唯一手动进行 视图渲染 控制。
如果你不关闭ViewRenderer 那么控制器首先用ViewRenderer去解析views/scripts/XXX/yyy.phtml,然后再解析Zend_view::render()指定的脚本,这样就解析了两个脚本,很有点趣。
如果你不关闭ViewRenderer 并且你已经设定好了正确的 Zend_View::setScriptPath() 路径,那么你的yyy.phtml 和 render() 指定的脚本必须要同时存在,如果少一个也不能解析。

关闭方法:
全局关掉,用Zend_Controller_Front实例,在Zend_Controller_Front ->dispatch() 之前关闭:$front->setParam('noViewRenderer',true);
只针对某个具体的action关闭,在XXXController->yyyAction()中:$this->_helper->viewRender->setNoRender()。
最好只针对某个action关闭ViewRender。

<?php
require_once ' Zend/Controller/Front.php';
 
$front = Zend_Controller_Front ::getInstance();
$front->setControllerDirectory( array(
    'default'  =>  '/path/to/controllers',
    ...
));
//也可以使用 $front->addModuleDirectory('/path/to/application/modules'); 而不需要指定每一个'模块'=>'路径'
$front -> setParam('noViewRenderer',true);     
$front -> dispatch();
?>

三. 
Zend_Controller_Front -> setControllerDirectory('...') 和
Zend_View -> setScriptPath('...')
两个里面的 路径都是针对 Web 根目录 index.php 文件为相对路径.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值