caendesilva / pikoserve
一个真正的微型框架,用于PHP微服务
This package is auto-updated.
Last update: 2024-09-22 21:03:34 UTC
README
关于
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响应之后。
我想到了这可以用来加载回调模块,以便轻松共享这些类型的回调。如果您有任何此类微包的想法,请告诉我您的想法!