steos / restmachine
PHP的webmachine
dev-master
2020-07-07 18:18 UTC
Requires
- php: >=7.4
- ext-json: *
- symfony/http-foundation: ^5.1
Requires (Dev)
- phpunit/phpunit: ^9.2
This package is auto-updated.
Last update: 2024-09-08 03:11:41 UTC
README
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。
文档
致谢
致谢如下
-
clojure-liberator,我们从其中提取了决策图,并将其作为参考和文档,以了解webmachine的执行模型。
-
Symfony HttpFoundation,RestMachine基于此构建。
项目状态
这是beta软件。一些功能仍然缺失。会有bug。API可能还会更改,但应该相当稳定。
待办事项
- 内容协商语言、字符集、编码
- 带有路由的独立包装器
- PATCH方法
- 按照rfc 2616处理RFC850/1036和ANSI C的asctime()格式(
Utils::parseHttpDate
)
许可证
版权所有 © 2020 Stefan Oestreicher及贡献者。
根据BSD-3-Clause许可证分发。