gpt4 book ai didi

php - 独立路由库?

转载 作者:行者123 更新时间:2023-12-04 05:26:50 25 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




多年来,我已经开发了自己的框架。它缺少的是中央路由系统。
我想将一个独立的路由库集成到我的框架中,而不是重新发明轮子。

是否有独立的 php 路由库?
如果没有,您能提出任何发展指南吗?

我想要类似 F3 框架的东西:

$route->add( 'article/view/[0-9]+' );  //> Call Article->view(); (website.net/article/id/123)
$route->add( 'email', 'email.php' ); //> Run email.php (website.net/email)

编辑

我是自己开发的。这里的示例用法:

   // index.php

require 'router.php';

$router = new Router();

$router
//> It will require controllers/article.php and call one of the view,etc method
->add('(article)/(view|edit|delete|add)/([0-9]+)')

//> Same thing as before, but this time we use underscore as separator
//> It will require controllers/entry.php and call view method
->add('(entry)_(view)_([0-9]+)')

//> Or you can require custom file like this
->add( '(myCustomPage)' , '/controllers/myCustomPath/myPage.php' )

->dispatch();

如果您需要一个简单的 Controller ,您可以直接运行一个函数而无需指定一个类。示例:
   // myCustomController.php
function myCustomController($id) {
echo 'I am the Custom Controller';
}

// index.php
$router
->add('(myCustomController)/([0-9]+)');

// The routing system will detect there is a function and will call it directly.
// Otherwise will just instanciate a new myCustomController() object

您当然可以像这样使用搜索引擎友好的 URL:
   //> This will match something like this: article/123/your-title-here
->add('(article)/([0-9]+)/[a-z0-9-]+')

您可以像这样从自定义 Controller 运行自定义方法:
   ->add('(ctrlname)/(methodname)/(params)', array('CustomControllerName','CustomMethod') );

来源: http://pastebin.com/9F02GEyN

最佳答案

您可以使用 Symfony Routing component ,或辉煌klein.php路由器,这是一个受 Sinatra 启发的工具,包装在单个 PHP 文件中。

关于php - 独立路由库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com