steos/restmachine

PHP的webmachine

dev-master 2020-07-07 18:18 UTC

This package is auto-updated.

Last update: 2024-09-08 03:11:41 UTC


README

Build Status

restmachine是webmachine的PHP实现。

Webmachine将HTTP语义意识带到您的应用程序中。它允许您声明性地指定动态HTTP资源,这样您就不必担心实现细节。

示例

Resource::create(self::defaults())
    ->allowedMethods(['GET', 'PUT', 'DELETE'])
    ->isProcessable(self::validator())
    ->canPutToMissing(false)
    ->isNew(false)
    ->isRespondWithEntity(function(Context $context) {
        return $context->getRequest()->isMethod('PUT');
    })
    ->exists(function($context) use ($db, $id) {
        return Todo::exists($db, $id);
    })
    ->put(function($context) use ($db, $id) {
        Todo::update($db, $id, $context->entity);
    })
    ->delete(function($context) use ($db, $id) {
        Todo::delete($db, $id);
    })
    ->handleOk(function(Context $context) use ($db, $id) {
        return Todo::fetchOne($db, $id);
    });

安装

使用composer

{
  "require": {
    "steos/restmachine": "dev-master"
  }
}

restmachine目前需要PHP >= 7.4。

文档

致谢

致谢如下

项目状态

这是beta软件。一些功能仍然缺失。会有bug。API可能还会更改,但应该相当稳定。

待办事项

  • 内容协商语言、字符集、编码
  • 带有路由的独立包装器
  • PATCH方法
  • 按照rfc 2616处理RFC850/1036和ANSI C的asctime()格式(Utils::parseHttpDate

许可证

版权所有 © 2020 Stefan Oestreicher及贡献者。

根据BSD-3-Clause许可证分发。