LZ帮助

LZ框架旨在实现类似于ZEND的URL重写功能,通过解析URL到控制器和动作,支持多种数据库连接和模板页。本文介绍如何配置Apache以支持URL重写,并详细说明了LZ框架的安装步骤和关键组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LZ帮助(LZ框架)

前言:

目的是要能实现ZEND的URL重写功能,能够将诸如:(/index/show)解析为index控制器的show动作。

其它数据库连接,模板页等用其它技术实现。

从Zend中提取部分文件并修改部分代码使其能独立运行。

Controller.php <=>/Zend/Controller/Action.php

Exception.php  <=>Exception.php

LZ.php         <=>/Zend/Controller/Request/Http.php

Loader.php     <=>/Zend/Loader.php

     Module.php<=>/Zend/Controller/Router/Route/Module.php(已整合进Request.php文件)

Registry.php   <=>/Zend/Registry.php

Request.php    <=>/Zend/Controller/Request/Abstract.php

ZendLicense.txt---Zend中相关许可信息。

use_zend.php------要将在此环境下开发的项目换成Zend,请在设置好include_path后单独加载此文件,并去掉其它文件的加载。

zend2lz.php-------要使用此环境运行Zend下开发的项目,请在设置好include_path后单独加载此文件,并去掉其它Zend相关文件的加载。(在Zend项目中使用的部分函数会报错,请注意排查。)

帮助.txt----------本文

首先:

设置Apache配置文件中对应网站目录的属性(不推荐修改全局属性):

    AllowOverride all

    #设置可重写

    RewriteEngine on

    #重写规则

设置重写文件名

    RewriteRule !/.(js|ico|gif|jpg|png|css)$ index.php

在网站目录内建立文件:.htaccess

<<

RewriteEngine on

RewriteRule !/.(js|ico|gif|jpg|png|css)$ t_z.php

#设置重写文件名

>>

进行重写的文件中(通常用index.php):

1.设置包含目录将LZ所在目录包含进去。

set_include_path('D:/Server/WebRoot/_T_FTP/includes' . PATH_SEPARATOR . get_include_path());

2.载入如下三个文件:

require_once('LZ/LZ.php');//核心主文件。

require_once('LZ/Controller.php');//控制器类

require_once('LZ/Registry.php');//全局变量注册类。//不需要时可以不加

建议:

LZ_Registry::set('webroot','http://192.168.8.106/Test/webroot/');

//将网站根目录保存为全局变量

设置网站根URL,当“重写文件”不是位于IP/域名:端口/下时这样种能保证系统能正常运行,记得在每个URL路径前加上这个变量就行了。

/**

 *是否显示调试信息。Fatal error: Uncaught exception

 */

$showFatalError = 1;//强制显示Fatal error:信息。

$lz = new LZ();//创建主类实例。

$lz ->setControllerDirectory('G:/WebRoot/tlz/controller');//设置控制器路径

$lz ->dispatch();//调用控制器和动作。

控制器类:

控制器类要继承自:Controller。文件名和类名要相同以Controller结尾。

 控制器内构造函数请用init(),不要使用__construct()。

动作名(函数)要以Action结尾如:indexAction(),注意名称首字母不要大写(避免某些系统不支持导致转到Zend时可能会出错)。

可以使用LZ_Loader::loadClass来载入要用的模块处理类。

保留了_redirect函数,_redirect($toUrl,$tipInfo,$back,$useBaseUrl)

     * @param string $toUrl 要重定向到的地址

     * @param string $tipInfo 提示信息

     * @param int $back 是否后退,为1时执行后退操作,忽略$toUrl值,

         如果无后退页面返回的网站的首页。

  * @param int $useBaseUrl 是否添加BaseUrl(基础路径),默认使用,

         要使用全路径跳转,请将该项置假(除特殊需要不推荐使用)

 函数在客户端启用脚本时会弹出对话框提示,在客户端禁用了脚本后会显示提示信息。

在控制器里添加了assemble(array)函数用于将数组构成URL。函数后会返回带有控制器和动作的及数组参数的URL。(不推荐使用,因为Zend不支持。)

保留了setBaseUrl()函数,通常使用setBaseUrl(WEB_ROOT_URL);设置基础URL,在LZ系统中主要影响_redirect函数,在其使用全路径时会失效。

使用多个模块请设置多个控制器路径$lz ->setControllerDirectory(array()),其中数组中的default项的值为默认的模块,其它项的值为其它模块。使用其它模块时用:/module/controller/action。

注意:

不要在重写文件中输出任何信息,这可能会引起后续程序在调用_redirect()函数时出错。

系统默认不支持?controller=***&action=***&module=***这种方式。

不推荐使用?controller=conname&action=actionname..形式--转换到Zend时不支持。

但可以通过调用Request->setUseOtherMode()来启用这种方式,强烈建议不要同时使用/controller/action/和?controller=***&这两种方式,这将会出现意想不到的结果(因为启用后系统会使用这三个GET变量名也会调用POST同名变量,注意不要覆盖。优先顺序为GET最优,POST其次,/controller/action/最后)。

URL:/controller/action/不支持中文(动作可以使用中文,但强烈不推荐--转换到Zend时不支持)。

未支持修改默认模块、默认控制器及默认动作。

$this->_forward('index','tza',null);//函数

系统不支持出错时调用ErrorController。没有实现对应的错误处理方法。请注意使用__call()来进行处理。

Linux系统区分大小写,请注意统一。

初学者参考:(Zend相关帮助)

获得URL传递的参数的值使用$controller->_getParam(参数名)。

检查URL中是否存在指定的参数$controller->_hasParam(参数名)。

要设置URL传递的参数的值使用$controller->_setParam(参数名,值)。

要获得全部URL传递的参数使用$controller->_getAllParams()。

重定向请用$controller->_redirect(目标位置,提示信息,是否后退(为1时执行后退操作,忽略$toUrl值))。

其它函数请参见源文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值