## 生成url
### 方法生成
可以对路由进行映射生成
该方法首先会在路由规则里面寻找是否有符合规则的
如果没有符合那么它将直接调用u方法生成url
~~~
Url::build();进行url的生成
/**
* 生成url
* @param [type] $expression [地址表达式]
* @param string $params [参数]
* @param string $ext [后缀]
* @param string $domain [域名]
* @return [type] [description]
*/
public function build($expression, $params = '', $ext = '', $domain = '')
~~~
地址表达式会使用`parse_url`进行解析,所有可以在表达式上面加上域名参数锚点
例如:
~~~
Url::build('http://www.puaok.com/index/index/index', ['aid'=>3,'page'=>2], '.html')
~~~
生成结果
~~~
http://www.puaok.com/hepps/public/en/index/index/index/aid/3/page/2.html
~~~
如果在地址表达式中带域名必须要加`http://`或者`https://`
#### 入口文件
在不是伪静态的情况下需要在地址上面加有入口文件,默认的入口文件是`__ROOT__.index.php`
如需要修改可以使用root方法
~~~
Url::root(__ROOT__.'other.php')
~~~
### u函数生成
u函数生成不依赖与路由规则,仅仅会根据当前的配置的规则进行生成,使用方法和`build`方法一样,不过在最后面多了一个参数,默认入口文件是`__ROOT__.index.php`,可以在最后一个参数上面加上入口文件
~~~
/**
* 生成url
* @param [type] $expression [地址表达式]
* @param array $params [参数]
* @param string $ext [后缀名称]
* @param [type] $domain [域名]
* @param [type] $root [入口文件]
* @return [type] [description]
*/
function u($expression, $params = [], $ext = '', $domain = '', $root = __ROOT__ . 'index.php')
~~~
### 快速创建url
一般情况下我们对url方法调用非常的频繁,因为如果是文章列表之类的,如果使用u函数或者build方法生成会有很大的效率问题。
在url类型一样仅仅参数不一致时使用次方法可获得效率提升
#### 创建url
调用`Url::create()`方法创建一个url对象
参数:
~~~
[
必填 pathinfo模式或者兼容模式下的url地址
'pathinfoMode'=>'',
必填普通模式下的url地址
'normalMode'=> '',
选填 url后缀 如果是bool值则获取配置项的后缀,如果是字符串就使用该参数,否则后缀为空
'ext'=>true,
选填根路径默认为__ROOT__.'index.php'
'root'=>'',
选填 域名 http:://www.puaok.com 或者www.puaok.com
'domain'=>''
]
~~~
示例:
~~~
$urlObj = Url::create([
'pathinfoMode'=>'thread-{aid}-{page}',
'normalMode'=>ltrim(strstr(u('index/index/index', ['aid'=>'{aid}','page'=>'{page}']), '?'), '?'),
'ext'=>'.html',
'domain'=>'localhost']);
~~~
该方法返回一个对象
url参数使用占位符{}进行占位
#### 生成url
在使用create获取的对象可以直接调用
调用时可以传入参数
~~~
/**
* 生成url
* @param array $params [通过使用create方法调用]
* @return [type] [description]
*/
public function __invoke(array $params = [])
~~~
示例:
~~~
$urlObj(['aid'=>3,'page'=>1]);
结果:http://localhost/hepps/public/thread-3-1.html
~~~
- 简介
- 开发规范
- 许可协议
- 作者
- 安装框架
- 更新日志
- 基础
- 入口文件
- 全局变量
- 系统配置
- 目录结构
- 系统常量
- 自动加载
- 系统函数
- 应用密匙
- 依赖注入
- 配置
- 说明
- 基本使用
- 扩展应用
- C函数
- 容器
- 介绍
- 使用容器
- 绑定服务
- 数组访问
- 请求
- 基础
- 函数常量
- 获取信息
- 方法伪造
- 路由
- 基础使用
- 域名路由
- 静态路由
- 正则路由
- 路由分组
- 地区
- 资源路由
- 闭包
- 其它方法
- 响应
- 响应输出
- session
- 设置
- 生命周期数据
- cookie
- 加密使用
- 中间件(钩子)
- 基础使用
- 保存到文件
- 数据
- 配置
- 核心操作
- 聚合查询
- 查询构造器
- 关系型数据库关联
- 事务处理
- 日志
- 日志
- 视图
- 模板配置
- 模板文件
- 模板语言
- 基础使用
- 内置标签
- 扩展标签库
- 模板
- 变量输出
- 原样输出
- 运算符
- 缓存
- 缓存配置
- 基本操作
- 多语言
- 基础使用
- 扩展库
- 数据验证
- xml
- 压缩
- 工具类
- 字符串
- 文件上传
- 目录操作
- 二维码
- 验证码
- 图片处理
- curl
- url生成