caendesilva/pikoserve

一个真正的微型框架,用于PHP微服务

v1.1.0 2022-04-22 15:46 UTC

This package is auto-updated.

Last update: 2024-09-22 21:03:34 UTC


README

License MIT Class Size StyleCI Status

关于

Pico是一个常用于表示极其微小的单位的单位前缀。这正是Pikoserve所代表的含义!虽然它是为编写PHP微服务而设计的,但将其称为微型框架似乎过于夸张。

Pikoserve的诞生源于这条推文:https://twitter.com/StressedDev/status/1512860967000059907

在核心上,Pikoserve是一个用于创建微小无状态API服务的启动模板,本质上是一个用于编写和读取JSON响应以及发送正确头部的单个微小类的包装器。

安装

由于其轻量级,您可以只需下载Piko.php文件(或复制粘贴)即可开始,然后在PHP文件(通常是index.php)中引用它。如果您愿意,甚至可以将Piko.php文件用作index.php代码,只需将您自己的代码放在Piko类下面。尽管我更喜欢将其分开,以减少杂乱。

要快速开始,您可以使用Composer或Git。

composer create-project caendesilva/pikoserve
git clone https://github.com/caendesilva/pikoserve

用法

创建一个包含Main类的index.php文件。需要Piko.php文件,并在Main类中编写代码。然后调用Piko::boot()并传入Main类。然后Piko将发送头并执行handle方法,并返回JSON响应。

设置启动项目

您只需要Piko.php文件,但要快速开始,您可以使用存储库中的启动项目。

您还可以使用Composer创建新的Piko项目。它不是一个包,因为如果您正在编写将依赖于几个包的东西,那么您可能需要比Piko更复杂的东西。

# Get started with Composer
composer create-project caendesilva/pikoserve

# Get started with Git
git clone https://github.com/caendesilva/pikoserve

这将为您设置Piko.php文件,其中包含Piko类,以及一个引用它的index.php文件。说到这里,让我们看看它是什么样子。

Hello World示例

这是Piko附带并在此再次显示的index.php文件,以展示Piko的工作方式。

<?php 

// Include the Piko class
require_once 'Piko.php';

// Define the Main class, all your code should go in here
class Main extends App
{
    public function handle(): Response
    {
        return new Response(200, 'Hello World!');
    }
}

// Boot the Piko application with the Main class
Piko::boot(new Main());

要运行Piko,您需要的一切都这些。真的。

扩展Piko

由于Piko设计得非常简洁,添加您可能需要的任何功能都取决于您。

然而,Piko通过在boot方法中添加回调来轻松地流畅地添加功能。

例如,如果您想添加自定义错误处理器或服务器日志,您可以在boot方法中添加回调。

Piko::boot(new Main, function () {
    file_put_contents('server.log',
        'Server started at ' . date('Y-m-d H:i:s') . PHP_EOL,
        FILE_APPEND);
});

回调在handle方法之后执行,即在发送头和JSON响应之后。

我想到了这可以用来加载回调模块,以便轻松共享这些类型的回调。如果您有任何此类微包的想法,请告诉我您的想法!