fyyb / express
PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API。
Requires
- php: >=7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
README
PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API。
入门
安装
假设您已经了解 Composer,创建一个目录以存储您的应用程序,并将其设置为工作目录。
$ composer require fyyb/express
这将包含 composer 自动加载所有必要的依赖项。需要 PHP 7.0 或更高版本!
使用示例
安装后,在项目的根目录下创建 .htacces、config.php 和 index.php 文件。
为了使您的代码与配置文件分离,建议您使用以下类似的结构
.
├─ App/
│ └── ...
├─ vendor/
│ └── ...
├─ .htaccess
├─ config.php
├─ index.php
└─ composer.json
别忘了在 composer.json 的自动加载中添加您应用程序的命名空间。
"autoload": { "psr-4": { "App\\": "App/" } },
.htaccess
要使用 fyyb/express,必须将所有导航重定向到根文件(index.php),其中必须处理所有流量。下面的示例显示了如何做
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA]
config.php
定义项目变量/常量的文件。如果您的项目目录与根目录不同,请配置 BASE_DIR 常量以正确识别路由。
<?php const BASE_DIR = '/ path / to / project /'; ...
Hello world
在您的 index.php 中插入以下代码,看看有多简单
<?php require __DIR__ . "/config.php"; require __DIR__ . "/vendor/autoload.php"; use Fyyb\Router; use Fyyb\Request; use Fyyb\Response; $app = Router::getInstance(); $app->get('/', function(Request $req, Response $res) { $res->send('Hello World!'); }); $app->run();
此应用程序对于根 URL (/) 或路由的请求响应 "Hello, world!"。对于所有其他路径,它将响应 404 未找到。
简单路由
路由是指确定应用程序如何响应客户端对特定端点的请求,该端点是 URI(或路径)和特定的 HTTP 请求方法(GET、POST 等)。
每个路由可以有一个或多个处理器函数,当路由匹配时执行这些函数。
路由定义采用以下结构
$app->METHOD(PATH, HANDLER)
其中
- $app 是 fyyb/express 的一个实例。
- METHOD 是 HTTP 请求方法,小写。
- PATH 是服务器上的路径。
- HANDLER 是当路由匹配时执行的函数。
以下示例说明了定义简单路由。在主页上响应 "Hello World!"
$app->get('/', function (Request $req, Response $res) { $res->send('Hello World!'); });
响应根路由 (/) 或应用程序主页的 POST 请求
$app->post('/', function (Request $req, Response $res) { $res->send('Got a POST request'); });
响应根路由 (/) 或应用程序主页的 PUT 请求
$app->put('/', function (Request $req, Response $res) { $res->send('Got a PUT request'); });
响应根路由 (/) 或应用程序主页的 DELETE 请求
$app->delete('/', function (Request $req, Response $res) { $res->send('Got a DELETE request'); });
响应对 /user 路由的 GET、POST、PUT 和 DELETE 请求
$app->any('/user', function (Request $req, Response $res) { $res->send('Got a GET, POST, PUT and DELETE request at /user'); });
或者使用 map 函数自定义方法
$app->map([METHOD], PATH, HANDLER)
其中
- $app 是 fyyb/express 的一个实例。
- map 是一个路由函数。
- [METHOD] 是 HTTP 请求方法数组。
- PATH 是服务器上的路径。
- HANDLER 是当路由匹配时执行的函数。
响应对 /test 路由的 GET 和 POST 请求
$app->map(['GET', 'POST'], '/test', function (Request $req, Response $res) { $res->send('Got a GET and POST request at /test'); });