Commit Graph

287 Commits

Author SHA1 Message Date
PJ Dietz de46c8e089 Rework Server to be configured with setters 2018-06-25 15:46:37 -04:00
PJ Dietz be3d007961 Set a default chunk size for Transmitter 2018-06-25 09:11:58 -04:00
PJ Dietz 64628c4065 Move MethodMap to Route namespace 2018-06-22 15:54:01 -04:00
PJ Dietz ac8bdce037 Remove MethodMapInterface 2018-06-22 15:10:50 -04:00
PJ Dietz 73b6e4ab83 Router registers handlers directly with routes 2018-06-22 14:53:03 -04:00
PJ Dietz 9b29f2a09e Add Route::register method to delegate to MethodMap 2018-06-22 14:44:43 -04:00
PJ Dietz 72d5df244d Clean up MessageTest and documentation for Message classes 2018-06-22 13:43:44 -04:00
PJ Dietz b82ebf6d95 Update comments and documentation for Dispatcher and related classes 2018-06-22 12:17:30 -04:00
PJ Dietz 9aab0d780e Router can provide middleware called only for matched routes. 2018-06-21 16:00:11 -04:00
PJ Dietz 29cad3687e Router delegates on failure and does not return 404 2018-06-21 12:48:11 -04:00
PJ Dietz f016b74c38 Server responds with a default 404 response when request is unhandled 2018-06-21 12:48:11 -04:00
PJ Dietz cd9cc09afe Remove unused ivar from Transmitter 2018-03-13 15:08:35 -04:00
PJ Dietz 4c40db8ecc Update draft PSR-15 interfaces 2018-03-12 15:05:19 -04:00
PJ Dietz 1dd9bf0f9c Dispatcher can dispatch PSR-15 HandlerInterface and MiddlewareInterface (Drafts) 2018-03-12 15:05:18 -04:00
PJ Dietz b8b87a8032 ServerRequest copies request body to temp stream to allow multiple reads 2017-12-18 09:28:11 -05:00
PJ Dietz 3a77d99e00 Minor refactor of Router; various cleanup 2017-08-03 14:15:08 -04:00
PJ Dietz 83381bf5d5 Update PhpDoc return types as static to match updated PSR-7 interfaces 2017-08-03 14:05:02 -04:00
PJ Dietz 6772bd1ae0 New Message instances have an empty Stream instead of NullStream by default. 2016-05-22 12:44:40 -04:00
PJ Dietz 409ffe9371 new Stream() with no arguments creates an empty temp steam 2016-05-22 12:42:59 -04:00
PJ Dietz 0c61641376 Do not attempt to rewind unsociable streams when transmitting response 2016-02-22 14:45:16 -05:00
PJ Dietz db7aaa2688 ServerRequest parses request body when Content-type header includes expected values; allows for charset in header value. 2015-11-08 19:31:43 -05:00
PJ Dietz 2fe3575e69 Relax protection on some Server members to allow extension 2015-06-07 10:34:38 -04:00
PJ Dietz 6a1f0c2915 Spellcheck 2015-06-04 19:18:11 -04:00
PJ Dietz 6f33eab90b Update docblocks and fix typos 2015-06-02 19:45:14 -04:00
PJ Dietz 4429d4280b Stream opens php://temp for binary read-write 2015-06-01 19:07:08 -04:00
PJ Dietz 139e3c43da Template Routes do not match slash prefix variables that contain slashes as the non-first character 2015-05-25 10:17:42 -04:00
PJ Dietz 4ba6763126 URI Templates with slash prefix explosions do not match reserved characters 2015-05-24 13:53:56 -04:00
PJ Dietz 41336d9387 Uri does not percent encode reserved characters 2015-05-24 13:21:09 -04:00
PJ Dietz 5dcd119952 Add public method Server::getDispatcher to make the dispatcher available. 2015-05-21 12:14:28 -04:00
PJ Dietz 4ec0694351 Revise docblocks for interfaces. 2015-05-20 14:42:57 -04:00
PJ Dietz ab05ca0b40 Propagate pathVariablesAttributeName from Server to Router 2015-05-19 21:21:58 -04:00
PJ Dietz dedec4ec4e Router stores path variables directly as attributes by default. 2015-05-19 21:06:50 -04:00
PJ Dietz 0387255676 Remove unused import. 2015-05-19 19:50:03 -04:00
PJ Dietz ac2ed4a24a Router stops propagating on 404, 405, and OPTIONS 2015-05-19 19:12:12 -04:00
PJ Dietz a825654336 Refactor MiddlewareInterface::dispatch to MiddlewareInterface::__invoke 2015-05-19 18:35:29 -04:00
PJ Dietz 474d8da61c Server accepts attributes array as first constructor parameter and sets attributes on server request 2015-05-17 16:56:30 -04:00
PJ Dietz b06abc0df2 Stream checks isSeeakable before calling rewind in __toString 2015-05-17 16:56:30 -04:00
PJ Dietz c8bbd6d2b8 Remove dead code from Transmitter 2015-05-15 19:11:54 -04:00
PJ Dietz 15602d8e97 Remove suppression operator from RegexRoute 2015-05-15 19:11:43 -04:00
PJ Dietz 3d4a263beb Server accepts all dependencies as arguments to either constructor or respond 2015-05-14 19:43:08 -04:00
PJ Dietz 3f5e2321d9 Transmitter provides Content-length header without external class. Transmitter no longer alters the body for HEAD requests. 2015-05-14 07:51:28 -04:00
PJ Dietz 1be4ff7691 Router uses only the request's path for routing 2015-05-13 21:53:33 -04:00
PJ Dietz 3b18d1dcdb Router reads path variables from route and adds them to request before dispatching route 2015-05-13 21:53:33 -04:00
PJ Dietz 6232f67b9c Update RouteInterface and routes 2015-05-13 21:53:33 -04:00
PJ Dietz 61fd0f3354 TemplateRoute more throughly implements URI Templates as defined in RFC 6570
Template support:
- Simple strings /{var}
- Reserved string /{+var}
- Multiple variables per expression /{hello,larry}
- Dot-prefixes /{.filename,extension}
- Slash-prefiex {/path,to,here}
- Explosion {/paths*}, /cats/{ids*} explode to list arrays
2015-05-13 21:53:27 -04:00
PJ Dietz 1bb93434b2 Store variables from URI as uriVariables attributes 2015-05-12 17:58:35 -04:00
PJ Dietz 22a17e42bb Update Route docblocks 2015-05-12 17:44:28 -04:00
PJ Dietz 297e985e84 DispatchStack calls $next only when the stack runs to the end. 2015-05-12 07:54:11 -04:00
PJ Dietz 26a6a25d3b Rename Server::makeRouter to Server::createRouter 2015-05-11 15:39:12 -04:00
PJ Dietz 64eb5aecdd Rename Responding\Responder Transmission\Transmitter 2015-05-10 20:17:26 -04:00