新手在学习qeephp的时候,肯定会发现qeephp原来的路由又臭又长……还好,qeephp框架的有美化URL的功能。
首先介绍下qeephp的双向解析:
正向解析:
http://localhost/flyingdream/imgCode/check/1 ,像这样一个url很常见,在访问此链接的时候,他告诉服务器程序,我使用了imgCode这个控制器,并调用check方法。不仅如此,服务器还知道了type=1这个选项。
这种功能几乎每个框架里面都有。python的django框架通过正则表达式来改变URL的接收方式,这种方式一定让许多程序员感到十分亲切。个人认为qeephp的路由配置更加方便,因为不用写很长很长很长的正则表达式。
反向解析:
正向解析扯多了,反向解析其实很简单,就是一个函数:url()。这个函数根据参数具有反解析路由的能力。
下面引用下qeephp-quick-start上面的反解析介绍,因为上面讲的很清楚,不需要我多废话了:
在应用程序的 URL 路由没有启动时,url() 的效果如下:
url('tasks/create')// 结果为 index.php?controller=tasks&action=create
url('tasks/edit', array('task_id' => 2))// 结果为 index.php?controller=tasks&action=edit&task_id=2
而启用 URL 路由后,url() 的效果如下:
url('tasks/create')// 结果为 /tasks/create
url('tasks/edit', array('task_id' => 2))// 结果为 /tasks/edit/2
如果我们修改了路由规则,则效果可能是:
url('tasks/create')// 结果为 /create-new-tasks
url('tasks/edit', array('task_id' => 2))// 结果为 /edit-my-task/2
也就是说 url() 函数的结果取决于应用程序的配置和路由规则。
下面,上正餐:启用url路由:
1、讲工程目录中的 _htaccess 改名或复制为 .htaccess
2、修改 configs/environments.yaml 文件
dispatcher_url_mode: standard 改为 dispatcher_url_mode: rewrite
3、添加新的路由规则
实际上这个路由就可以用了。但是想要添加更多的路由规则可以根据默认的路由规则进行设置。实际上就是变量的取得而已。
_default_:
pattern: /:controller/:action/*
defaults:
controller: default
action: index
yaml的老规则,空两格缩进。