首页 > 开发 > PHP > 正文

ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼

2024-05-04 22:38:12
字体:
来源:转载
供稿:网友

前言

读过一篇关于Zend Framework2的技术文章《ZF2多级树形路由Route配置实例》,是介绍路由配置的。我觉得很有意思,这是的需求:

/user对应用户列表页面
/user/:user_id对应用户的个人主页,比如 /user/AlloVince 就对应AlloVince用户的个人主页
/user/:user_id/blog/对应用户的博客列表页面,比如 /user/AlloVince/blog 就会列出AlloVince写过的Blog
/user/:user_id/blog/:blog_id对应用户的一篇博客文章
方案引用自原文:

'router' => array(  'routes' => array(    'user' => array(      'type' => 'Segment',      'options' => array(        'route' => '/user[/]',        'defaults' => array(          'controller' => 'UserController',          'action' => 'index',        ),      ),      'may_terminate' => true,      'child_routes' => array(        'profile' => array(          'type' => 'Segment',          'options' => array(            'route' => '[:id][/]',            'constraints' => array(              'id' => '[a-zA-Z0-9_-]+'            ),            'defaults' => array(              'action' => 'get'            ),          ),          'may_terminate' => true,          'child_routes' => array(            'blog' => array(              'type' => 'Segment',              'options' => array(                'route' => 'blog[/]',                'constraints' => array(                ),                'defaults' => array(                  'action' => 'blog'                )              ),              'may_terminate' => true,              'child_routes' => array(                'post' => array(                  'type' => 'Segment',                  'options' => array(                    'route' => '[:post_id][/]',                    'constraints' => array(                      'post_id' => '[a-zA-Z0-9_-]+'                    ),                    'defaults' => array(                      'action' => 'post'                    )                  ),                  'may_terminate' => true,                ),              ),            ),          ), //profile child_routes end        ), //profile end      ), //user child_routes end    ), //user end  ),),

看了这篇文章后,我打算使用我用过的PHP框架来实现这个路由需求。

ThinkPHP

新建一个ThinkPHP项目:

代码如下:
composer create-project topthink/thinkphp tp --prefer-dist

命令行显示我安装的是3.2.2

Installing topthink/thinkphp (3.2.2)
我看ThinkPHP官网最新稳定版本是3.2.3。

我特意去packagist官网查了一下,库中稳定版确实是3.2.2。

我得使用3.2.3。为什么我特别纠结这一点哩?因为:

3.2的路由功能是针对模块设置的,所以URL中的模块名不能被路由,路由定义也通常是放在模块配置文件中。 3.2.3版本开始增加全局路由定义支持,可以在项目的公共配置文件中定义路由。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表