需要有关为PHP框架推出自己的路由的最佳方法的建议

Edw*_*uay 1 php rest routing

我目前有一个我编写的PHP框架,它依赖于凌乱的URL变量来知道要显示的页面或要返回的数据,例如

http://someurl.com/myapp/index.php?page=notes&id=34 //显示html页面 http://someurl.com/myapp/action.php?itemIdCode=notes&id=34&view=compact //获取JSON /用于ajax调用的html

我想现在编写自己的路由,以便URL看起来像这样:

http://someurl.com/myapp/page/note/34 //返回浏览器调用的完整页面 http://someurl.com/myapp/data/notes/34 //为AJAX调用返回JSON http:// someurl.com/myapp/view/notes/34/compact //返回AJAX调用的HTML

以下是一些问题:

  1. 是否存在任何语法规则,以便维护标准化REST语法(例如,如果我使用需要一些标准的前端javascript库).

  2. 是否有任何语法规则,你会建议,以改善搜索引擎优化,例如使用复数名称或单数名称,使用名词/动词,顺序等.

  3. 如果您想要发送多个键/值位,例如维护页面上的状态,您会怎么做?您是否只是在路由URL的末尾发送URL变量,如下所示:http://someurl.com/MYAPP /页面/笔记/ 34?searchOpen =真sortColumn =城市与秩序= ASC

  4. 什么是我需要捕获index.php中所有URL调用的.htaccess代码,以便我可以处理URL而不将浏览器发送到子目录等.

Den*_*rdy 5

首先,查看Symfony路由器,因为它基本上是独立的:

http://symfony.com/doc/current/components/routing/introduction.html

您可能还会发现这两个视频很有趣:

http://www.youtube.com/watch?v=XzgCzjMdvRE

http://www.youtube.com/watch?v=aoiaSkRCObY

是否有任何语法规则,你会建议,以改善搜索引擎优化,例如使用复数名称或单数名称,使用名词/动词,顺序等.

使用最自然的东西.例子:

  • GET /posts 是一个帖子列表.
  • GET /posts/2或者GET /posts:2对于同一帖子列表的第2页看起来很自然.
  • GET /posts/1-3或者GET /posts:1-3如果你使用无限滚动看起来自然员额的同一列表的3 1页.
  • GET /post/1或者GET /post:1可能是post id 1.
  • PUT /post/1或者PUT /post:1会更新帖子ID 1.
  • GET /postGET /post/newGET /post:new将是自然的一个新帖子编辑器.
  • POST /post或者POST /post/new或者POST /post:new很自然地插入新帖子.
  • 等等

如果您想要发送多个键/值位,例如维护页面上的状态,您会怎么做?您是否只是在路由URL的末尾发送URL变量,如下所示:http://someurl.com/MYAPP /页面/笔记/ 34?searchOpen =真sortColumn =城市与秩序= ASC

Imho,对这类事物使用查询字符串.其他网址和路由规则很快就会变得非常混乱.(有关如何弄乱事物的史诗例子,请查看与ANDed和ORed分类法相关的WordPress重写逻辑.)

什么是我需要捕获index.php中所有URL调用的.htaccess代码,以便我可以处理URL而不将浏览器发送到子目录等.

典型:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ /index.php [L]
Run Code Online (Sandbox Code Playgroud)