2017 © Pedro Peláez
 

library restmachine

webmachine for PHP

image

steos/restmachine

webmachine for PHP

  • Thursday, February 4, 2016
  • by steos
  • Repository
  • 1 Watchers
  • 0 Stars
  • 18 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

restmachine

Build Status, (*1)

restmachine is a webmachine implementation for PHP., (*2)

Webmachine brings HTTP semantic awareness to your application. It allows you to declaratively specify dynamic HTTP resources so you don't have to worry about implementation details., (*3)

Example

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);
    });

Install

With composer:, (*4)

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

restmachine currently requires PHP >= 7.4., (*5)

Documentation

Credits

Credits go to, (*6)

  • clojure-liberator where we extracted the decision graph and which we heavily used as reference and documentation to understand the webmachine execution model, (*7)

  • Symfony HttpFoundation which RestMachine is built on., (*8)

Project Status

This is beta software. Some functionality is still missing. There will be bugs. The API may still change, but should be fairly stable., (*9)

TODO

  • Content negotiation for language, charset, encoding
  • Standalone wrapper with routing
  • PATCH method
  • handle RFC850/1036 and ANSI C's asctime() format as per rfc 2616 (Utils::parseHttpDate)

License

Copyright © 2020 Stefan Oestreicher and contributors., (*10)

Distributed under the terms of the BSD-3-Clause license., (*11)

The Versions

04/02 2016

dev-master

9999999-dev

webmachine for PHP

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires