- 1 认识 zentaoPHP 框架
- 2 入口文件
- 3 配置管理
- 4 模块管理
- 4.1 控制器(control)
- 4.2 业务逻辑(model)
- 4.2.1 定义 model
- 4.2.2 跨模块调用
- 4.2.3 获取模块名
- 4.2.4 删除记录
- 4.2.5 数据处理对象 dao
- 4.3 模版视图(view)
- 4.4 从 hello world 开始
- 4.5 模块的配置
- 4.6 模块的语言
- 4.7 模块的 CSS 和 JS 管理
- 5 类库
- 6 扩展机制
- 6.1 扩展机制简介
- 6.2 新增独立模块
- 6.3 对控制层(control)扩展
- 6.4 对模型层(model)扩展
- 6.5 对视图层(view)扩展
- 6.6 对样式表和js进行扩展
- 6.7 对语言配置进行扩展
URL生成
- 2021-09-27 10:59:22
- admin
- 2251
- 最后编辑:admin 于 2022-08-06 12:34:40
zentaoPHP 框架中生成链接的时候,尽量不要手工拼写链接,通过调用系统提供的 createLink 、inlink 方法,来生成链接。
$this->createLink()方法
在 control 基类里定义了一个 createLink 方法,用来生成一个访问指定模块和方法的连接。
createLink($moduleName, $methodName, $vars)
这三个参数均为字符串类型,分别为目标地址的 模块名、方法名、参数。
第一个参数是模块名称;
第二个参数是方法名;
第三个参数是参数,使用 key1=value1&key2=value2 这种方式来进行传参。
比如,我们要生成一个 blog 模块的view方法的链接,需要传递参数为 id=17,这样来调用:
echo $this->createLink('blog', 'view', 'id=17&cat=123')
如果运行方式为 PATH_INFO,这样会生成 blog/view/17/123.html 这样的链接。
如果运行方式为 GET,则生成 ?m=blog&f=view&id=17&cat=123&t=html 的链接。
$this->inlink()方法
如果是要生成一个当前模块下的链接,可以直接使用 $this->inlink() 方法, 用法与上面类似,只是省略了第一个指定模块的参数而已。
echo $this->inlink('view', 'id=17&cat=123')
helper::createLink()方法
$this->createLink() 方法,是可以在 control 和 view 里面直接调用的。如果需要在其他地方调用,则可以使用 helper::createLink(),参数是一样的。
获取页面 URL
在 router(应用对象)中定义了一个 getURI() 方法,用来获取页面 URL地址。参数 $full 是布尔值,表示是否显示 url 根目录以及视图类型,默认为 false。
调用示例:
echo $this->app->getURI(true);
以本页面 PATH_INFO 模式为例:
参数 false:book/zentaophp/102
参数 true:/book/zentaophp/102.html
获取 webRoot
框架核心文件 helper 和 router 分别都定义了一个 getWebRoot() 函数方法。
helper 中的 getWebRoot() 工具函数:
此函数是独立的,与配置文件无关,其唯一参数表示是否获取域名网址,默认为 false。返回值示例:
参数 false:/
参数 true:http://www.zentaophp.com/
router 中的 getWebRoot() 成员方法:
此方法获取的是 URL 根目录,取自配置文件中设置的 $config->webroot 值。