2017 © Pedro Peláez
 

library middleware

Telegraph-compatible middleware decorators.

image

telegraph/middleware

Telegraph-compatible middleware decorators.

  • Tuesday, May 31, 2016
  • by pmjones
  • Repository
  • 3 Watchers
  • 9 Stars
  • 14 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Telegraph Middleware

This package includes the following Telegraph-compatible middleware:, (*1)

  • ExceptionHandler to handle exceptions from subsequent middleware
  • FormContentHandler to deserialize the URL-encoded payload of a PSR-7 request
  • JsonContentHandler to deserialize the JSON payload of a PSR-7 request
  • ResponseSender to send a PSR-7 response
  • SessionHeadersHandler to manage session headers "manually", instead of PHP managing them automatically

This package is installable and PSR-4 autoloadable via Composer as telegraph/middleware., (*2)

ExceptionHandler

Similarly, the ExceptionHandler does what it sound like: it catches any exceptions that bubble up through the subsequent middleware decorators., (*3)

The ExceptionHandler does nothing with the $request , and passes it directly to $next inside a try/catch block. If no exception bubbles up, it returns the $response from $next. However, if it catches an exception, it returns an entirely new $response object with the exception message and an HTTP 500 status code. It then returns the new $response object., (*4)

The ExceptionHandler is intended to go near the top of the Telegraph queue, but after the ResponseSender, so that the ResponseSender can then send the returned $response., (*5)

To add the ExceptionHandler to your queue, instantiate it directly with an empty $response implementation object ..., (*6)

$queue[] = new \Telegraph\Middleware\ExceptionHandler(new ResponseImplementation());

... or use a $resolver of your choice to instantiate it from the $queue., (*7)

FormContentHandler

FormContentHandler works almost identically to _JsonContentHandler_ (below), but parses payloads of requests that have application/x-www-form-urlencoded as the Content-Type., (*8)

JsonContentHandler

Again, the JsonContentHandler does what it sounds like: it deserializes the JSON payload of a PSR-7 request object and makes the parameters available in subsequent middleware decorators., (*9)

The JsonContentHandler checks the incoming request for a method other than GET and for an application/json or application/vnd.api+json Content-Type header. If it finds both of these, it parses the JSON and makes it available as the parsed body of the $request before passing it to $next. If the method is GET or the Content-Type header defines a different mime type, the JsonContentHandler ignores the $request and continues the chain., (*10)

To add the JsonContentHandler to your queue, instantiate it directly..., (*11)

$queue[] = new \Telegraph\Middleware\JsonContentHandler();

... or use a $resolver of your choice to instantiate it from the $queue., (*12)

To access the decoded parameters in subsequent middleware, use the getParsedBody() method of the $request, (*13)

$decodedJsonData = $request->getParsedBody();

ResponseSender

The ResponseSender does just what it sounds like: it sends the PSR-7 response object., (*14)

The ResponseSender does nothing with the $request, passing it immediately to $next. Afterwards, it takes the returned $response and sends it using header() and echo, and returns the sent $response., (*15)

The ResponseSender is intended to go at the top of the Telegraph queue, so that it is the middleware with the last opportunity to do something with the returned response., (*16)

To add the ResponseSender to your Telegraph queue, instantiate it directly ..., (*17)

$queue[] = new \Telegraph\Middleware\ResponseSender();

... or use a $resolver of your choice to instantiate it from the $queue., (*18)

SessionHeadersHandler

Normally, PHP will send out headers for you automatically when you call session_start(). However, this means the headers are not being sent as part of the PSR-7 response object, and are thus outside your control. This handler puts them back under your control by placing the relevant headers in the PSR-7 response; its behavior is almost identical to the native PHP automatic session headers behavior., (*19)

NOTE: For this middleware to work, you must disable the PHP session header management ini settings. For example:, (*20)

ini_set('session.use_trans_sid', false);
ini_set('session.use_cookies', false);
ini_set('session.use_only_cookies', true);
ini_set('session.cache_limiter', '');

If you do not, the handler will throw a RuntimeException., (*21)

To add the SessionHeadersHandler to your queue, instantiate it directly..., (*22)

$queue[] = new \Telegraph\Middleware\SessionHeadersHandler();

... or use a $resolver of your choice to instantiate it from the $queue., (*23)

When instantiating, you can pass a cache limiter value as the first constructor parameter. The allowed values are 'nocache', 'public', 'private_no_cache', or 'priviate'. If you want no cache limiter header at all, pass an empty string ''. The default is 'nocache'., (*24)

You can also pass a cache expire value, in minutes, as the second constructor parameter. The default is 180 minutes., (*25)

The Versions

31/05 2016

1.x-dev

1.9999999.9999999.9999999-dev https://github.com/telegraphp/telegraph.middleware

Telegraph-compatible middleware decorators.

  Sources   Download

MIT

The Requires

 

The Development Requires

29/05 2016

1.0.0

1.0.0.0 https://github.com/telegraphp/telegraph.middleware

Telegraph-compatible middleware decorators.

  Sources   Download

MIT

The Requires

 

The Development Requires