fyyb/express

PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API。

2.0.4 2022-01-04 23:29 UTC

This package is auto-updated.

Last update: 2024-09-05 05:07:32 UTC


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');
    });