piotrpasich / cakephp-symfony-router
为cackePhp设计的symfony路由器
Requires
This package is not auto-updated.
Last update: 2024-09-24 07:12:01 UTC
README
CakephpSymfonyRouter是一个插件,可以扩展默认路由器的使用方式。它提供了三个新特性:
- 添加命名路由
- 操作匹配路由的参数
- 只有当路由符合给定条件时才匹配
要求
- CakePHP 2.x(已在2.4和2.5上测试,但应适用于所有2.x版本)
- PHP 5.3或更高版本(应能在5.2上运行,但未进行测试)
- composer
安装
使用Composer
将插件添加到项目的composer.json文件中,例如:
{ "require": { "piotrpasich/cakephp-symfony-router": "dev-master" } }
然后你需要安装供应商
cd app/Plugins/CakephpSymfonyRouter
composer install
因为这个插件在其自己的composer.json文件中设置了类型为cakephp-plugin,所以Composer知道将其安装在你项目的/Plugins目录中,而不是在通常的供应商文件中。建议你将/Plugins/PowerRouter添加到你的.gitignore文件中。为什么?阅读这个。
手册
- 下载这个:http://github.com/piotrpasich/cakephp-symfony-router/zipball/master
- 解压缩下载
- 将生成的文件夹复制到app/Plugins
- 将你刚刚复制的文件夹重命名为
CakephpSymfonyRouter
GIT子模块
在你的app目录中输入
git submodule add git://github.com/piotrpasich/cakephp-symfony-router.git plugins/CakephpSymfonyRouter git submodule init git submodule update
GIT Clone
在你的插件目录中输入
git clone git://github.com/piotrpasich/cakephp-symfony-router.git CakephpSymfonyRouter
使用方法
CakephpSymfonyRouter是一个扩展了CakeRoute的定制路由类。这样,你可以使用它来定义路由并利用其特性。使用它将使你在CakePHP中使用路由比现在更容易。
为了使用CakephpSymfonyRouter的特性,首先需要在你的app/Config/bootstrap.php文件中添加以下行来加载插件:
//app/Config/bootstrap.php App::build(array('Plugin' => array(ROOT . '/Plugin/'))); CakePlugin::load('CakephpSymfonyRouter');
然后,将库导入到你的app/Config/routes.php文件中,如下所示:
//app/Config/routes.php App::uses('SymfonyRouter', 'CakephpSymfonyRouter.Lib'); App::uses('RouterYmlConfiguration', 'CakephpSymfonyRouter.Lib'); $routerYmlConfiguration = new RouterYmlConfiguration(APP . 'Config' . DS . 'router.yml'); $symfonyRouter = new SymfonyRouter($routerYmlConfiguration);
之后,你可以在app/Config/router.yml文件中创建自己的文件,如下所示:
home: path: / defaults: { controller: Home, action: index } blog: path: /blog defaults: { controller: Blog, action: index } blog_post: path: /blog/{slug} defaults: { controller: Blog, action: post }
在模板视图中进行路由匹配
为了在你的视图文件中使用此插件并生成URL,你需要在控制器中添加一个Helper,如下所示:
//app/Controller/BlogController class BlogController extends AppController { public $helpers = array('CakephpSymfonyRouter.SymfonyRouter'); /** ... **/ }
然后你可以在视图中生成你的URL
//app/View/Blog/index <?php echo $this->SymfonyRouter->getPath('blog_post', array('slug' => $post->getSlug())); ?> <a href="<?php echo $this->SymfonyRouter->getPath('blog_post', array('slug' => $post->getSlug())); ?>"><?php echo $post->getSlug() ?></a>
#更多信息
有关如何在https://symfony.com.cn/doc/current/book/routing.html中工作,你可以找到更多关于Symfony路由的信息。
此插件主要是Symfony路由包和CakePHP框架之间的桥梁。
许可
MIT许可(MIT)
版权所有(c)2014 Piotr Pasich
特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人这样做,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按照“原样”提供,不提供任何形式的保证,无论是明示还是暗示,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任产生于合同行为、侵权或其他与软件的使用或其他相关行为有关的行为。