jacksonsr45/radiante-php

这是一个简单的PHP微框架

1.0.2 2023-08-15 13:38 UTC

This package is auto-updated.

Last update: 2024-09-09 15:52:13 UTC


README

RadiantPHP 是一个用于构建PHP网络应用的轻量级微框架。它提供了一个简单而优雅的结构,可以轻松开发Web项目。使用RadiantPHP,您可以快速构建RESTful API、Web服务或小型到中型网站。

RadiantPHP ServerRequestFactory 提供了一种简单方便的方式,在您的PHP应用程序中处理HTTP请求和响应。本文档将指导您如何将ServerRequestFactory集成到您的index.php文件中,以处理传入的请求并发送适当的响应。

安装

在您的项目目录下,打开终端并输入以下命令!

composer require jacksonsr45/radiante-php

用法

按照以下步骤将RadiantPHP ServerRequestFactory集成到您的index.php文件中

  1. 导入所需的类:
<?php

use Jacksonsr45\RadiantPHP\ServerRequestFactory;
  1. 包含Composer自动加载器,并将路径设置为您的routes.php文件
require_once __DIR__ . '/../vendor/autoload.php';

$pathToRoute = __DIR__ . '/routes.php';
  1. 创建ServerRequest并处理请求
$request = ServerRequestFactory::createServerRequest($pathToRoute);
$response = ServerRequestFactory::handleRequest($request);
  1. 发送HTTP响应
ServerRequestFactory::sendHttpResponse($response);

示例

以下是集成RadiantPHP ServerRequestFactory后您的index.php文件应如何看起来

<?php

use Jacksonsr45\RadiantPHP\ServerRequestFactory;

require_once __DIR__ . '/../vendor/autoload.php';

// Creating a new container
$container = ContainerFactory::build();

$pathToRoute = __DIR__ . '/routes.php';
$request = ServerRequestFactory::createServerRequest($pathToRoute, $container);
$response = ServerRequestFactory::handleRequest($request);
ServerRequestFactory::sendHttpResponse($response);

请确保将'../vendor/autoload.php'替换为正确的Composer自动加载器路径,如果它不同的话。

路由

使用方法 [GETPUTDELETEPUT] 轻松创建路由,第一步是使用类 Route 的实例,另一个使用 method,在方法中需要一个字符串作为 路由路径,以及一个包含 Controller::class类方法 的数组。

创建一个GET路由:

<?php

use Jacksonsr45\RadiantPHP\Http\Route;

Route::get('/user', [UserController::class, 'list']);
<?php

use Jacksonsr45\RadiantPHP\Http\Route;

Route::get('/user/<int:id>', [UserController::class, 'show']);

创建一个POST路由:

<?php

use Jacksonsr45\RadiantPHP\Http\Route;

Route::post('/user', [UserController::class, 'create']);

创建一个DELETE路由

<?php

use Jacksonsr45\RadiantPHP\Http\Route;

Route::delete('/user/<int:id>', [UserController::class, 'delete']);

创建一个PUT路由

<?php

use Jacksonsr45\RadiantPHP\Http\Route;

Route::put('/user', [UserController::class, 'update']);

创建控制器:

创建一个新的控制器很简单,创建一个新的类,在这个类中,如果需要,使用DI创建一个 __construct(),然后注入一个接口。

根据功能需要在index.php中包含部分代码

$container->set(ResponseInterface::class, create(Response::class));

在控制器中需要

use Jacksonsr45\RadiantPHP\Http\Message\Interfaces\ResponseInterface;

class UserController
{
    public function __construct(
        private readonly ResponseInterface $response
    ) {}

    public function index(): ResponseInterface
    {
        return $response->withStatus(200)->write('Hello World!');
    }
}

通过这些简单的步骤,您已成功将RadiantPHP ServerRequestFactory集成到您的index.php文件中,允许您在PHP应用程序中处理传入的HTTP请求并发送适当的响应。