modulework / routework
PHP 基础 RESTful 路由器
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-28 14:01:45 UTC
README
这是一个非常容易使用的路由类。你可能从大型框架中听说过它。但这次它是独立的!
安装
- 将
router.php
文件放入你的应用程序文件夹 - 将
.htaccess
文件放入你的根站点文件夹,根据需要调整RewriteBase
- 包含它
include 'router.php';
- 初始化它
Route::tar()
<- 我知道这不是我最好的笑话 :D
如何使用 & 示例
现在你可以开始定义一些路由,如下所示
Route::get('/', function() {
echo "Home";
});
每次访问你的 URL 都会显示 Home
。请确保你始终定义此路由。
但其他路由怎么办?假设我们想要设置一个基本网站。我们需要一个 contact
、about
和 projects
页面。
Route::get('contact', function() {
?>
<html>
<head>
<title>Contact us!</title>
</head>
<body>
<h1>Contact Us!</h1>
<form action="contact" method="POST">
<input type="text" name="name" />
<input type="submit" value="Send us your name!" />
</form action="contact" method="POST">
</body>
</html>
<?php
});
请注意,我们退出 PHP 以写入一些 HTML 标记,并且我们 绝不 在我们的路由中添加任何尾部或前导斜杠!
Route::get('about/(:any)', function($name) {
?>
<html>
<head>
<title>About us!</title>
</head>
<body>
<h1>About Us!</h1>
<p>Staff: <?php echo $name; ?></p>
</body>
</html>
<?php
});
在关于页面上,用户可以通过在 URL 中附加一个名称如 /bob
来查看不同雇员的资料。我们在路由中定义了一个通配符 (:any)
,它允许任何字符并通过我们传递到闭包中的 $names
变量使其可用。有两种类型的通配符可用
(:any)
任意字符组合(:num)
仅数字
现在使用这些知识
Route::get('project/(:num)', function($id) {
switch($id):
case: '1'
$project = 'MODULEWork';
default:
$project = 'Not Found';
?>
<html>
<head>
<title>PROJECT | <?php echo $project; ?></title>
</head>
<body>
<h1><?php echo $project; ?></h1>
<p>Interesting information...</p>
</body>
</html>
<?php
});
你可以看到你只能传递一个整数到这个路由,并且项目名称基于这个 ID 生成。
你可能已经看到了我们在联系页面创建了一个表单。如果我们现在提交它,我们会看到一个空白页面。为什么?contact
路由被定义了。然而,它被定义为 get
路由。此路由只会对 HTTP GET 请求做出响应,不会对 POST 做出响应。为了获取表单的信息,我们需要定义一个对 POST
请求做出响应的路由。
ROUTEWork 是 RESTful 的
你可以为 4 种 HTTP 请求方法定义路由
GET
使用此方法:get()
POST
使用此方法:post()
PUT
使用此方法:put()
DELETE
使用此方法:delete()
所有方法都有相同的语法!
未找到 - NOT - FOUND
你可能想知道如何让你的用户知道他访问了一个不存在的页面。
ROUTEWork 使其变得像馅饼一样简单。只需将此添加到你 所有 路由定义的底部即可!
Route::_404(function($uri) {
echo "<h1>404 - NOT FOUND</h1>";
echo "<p>Your requested page: ", $uri, "could not be found...</p>";
});
请确保将其放在非常底部,因为它将响应用户输入的每个 uri。
路由从上到下调用。这意味着如果你定义了两次相同的规则,则第一个规则会触发!