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
PJ Dietz
0f9c5079f9
Add Server
2015-05-10 19:04:12 -04:00
PJ Dietz
67d562b3bc
Responder::respond process responses for Content-length header and HEAD requests
2015-05-10 18:28:13 -04:00
PJ Dietz
b198e83d55
Add Responder namespace
...
Move ContentLength and Head middleware to Resonder\Middleware
2015-05-10 16:59:50 -04:00
PJ Dietz
7874484c53
Remove HttpExceptions
...
This will become its own package.
2015-05-10 16:50:21 -04:00
PJ Dietz
f849a6ff89
Router optionally takes a DispatcherInterface on construction
2015-05-10 14:32:43 -04:00
PJ Dietz
3811b9085f
Dispatcher creates DispatchStack for array
2015-05-10 13:53:15 -04:00
PJ Dietz
3786cfaade
Passing array to Router::register as middleware creates a DispatchStack
2015-05-10 12:15:39 -04:00
PJ Dietz
6507028dd3
Pass DispatchProvider to Router on construction
2015-05-10 12:04:36 -04:00
PJ Dietz
37af085ec5
Pass DispatcherInterface to RouteFactory on construction
2015-05-10 11:46:51 -04:00
PJ Dietz
87caa09b61
Pass DispatcherInterface into MethodMap on construction
2015-05-10 11:41:02 -04:00
PJ Dietz
94d6cc23b2
Add DispatchProviderInterface
2015-05-10 11:31:19 -04:00
PJ Dietz
8071b0b5db
Move MiddlewareInterface to the root namespace.
2015-05-10 11:21:55 -04:00
PJ Dietz
bbb138996a
Add Dispatching namesapce
2015-05-10 11:02:59 -04:00
PJ Dietz
560b1e8ff0
Add DispatchStack
2015-05-10 10:30:22 -04:00
PJ Dietz
2adcbd8636
Remove Router and rename RouteMap to Router
...
Remove Router
Remove RouterInterface
Rename RouteMapInterface to RouterInterface
Rename RouteMap to Router
Rename add() to register()
Make register fluid
2015-05-10 09:05:05 -04:00
PJ Dietz
b0db3cbcdd
MethodMap::dispatch calls $next even on failure
2015-05-10 09:05:05 -04:00
PJ Dietz
9470f90ee2
RouteMap::dispatch calls $next even on failure
2015-05-10 09:05:05 -04:00
PJ Dietz
c1a104af4f
Update HeadHook
2015-05-10 09:05:05 -04:00
PJ Dietz
06f694154c
Update ContentLengthHook
2015-05-10 09:05:05 -04:00
PJ Dietz
5a01d20f8e
Update RouteMap to match updated MiddlewareInterface
2015-05-10 09:05:05 -04:00
PJ Dietz
36263ba3de
Update routes to match new MiddlewareInterface
2015-05-10 09:05:05 -04:00
PJ Dietz
72767b74e8
Rename MethodMap::setMethod to ::register
2015-05-10 09:05:05 -04:00
PJ Dietz
d8352e71d9
Update MethodMap to match new MiddlewareInterface
2015-05-10 09:05:05 -04:00
PJ Dietz
a0e4ace6a5
Update Dispatcher
2015-05-10 09:05:00 -04:00
PJ Dietz
8874827524
Change MiddlewareInterface signature
2015-05-09 17:38:21 -04:00
PJ Dietz
1d30fcbbba
Remove RouteTable, revise RouteFactory,
2015-05-08 01:03:07 -04:00
PJ Dietz
09ea17d349
Update TemplateRoute
2015-05-08 00:25:15 -04:00
PJ Dietz
8f4165cdb6
Revise RegexRoute
2015-05-07 23:56:47 -04:00
PJ Dietz
cfcc3b9690
Revise PrefixRoute
2015-05-07 23:30:42 -04:00
PJ Dietz
86d36e8c15
Revise StaticRoute
2015-05-07 23:25:08 -04:00
PJ Dietz
58b5107289
Revise Route
2015-05-07 23:14:48 -04:00
PJ Dietz
7a53a02c5f
RouteMap: Remove check for captures (push this into regex route's dispatch)
2015-05-07 22:49:39 -04:00
PJ Dietz
1a49a4ac6c
RouteMap routes patterns
2015-05-07 22:01:11 -04:00
PJ Dietz
d5eb044169
Begin RouteMap
2015-05-07 21:36:54 -04:00
PJ Dietz
66319218cb
Test Router's default finalization hooks and sequence in which router dispatches middleware
2015-05-07 19:36:33 -04:00
PJ Dietz
9915dffcfc
Update finalization hooks.
2015-05-07 18:23:44 -04:00
PJ Dietz
ccbe8bb2e0
Rework MethodMap
2015-05-07 18:02:13 -04:00
PJ Dietz
ec7dceac98
Rework Router
2015-05-07 07:42:39 -04:00
PJ Dietz
121b8be044
Add response preparation hooks to Router
2015-05-03 19:38:04 -04:00
PJ Dietz
147ddd0539
Add ContentLengthPrep
2015-05-03 18:11:23 -04:00
PJ Dietz
559044a82f
Add HeadPrep
2015-05-03 16:54:03 -04:00
PJ Dietz
8462e2effc
Style, documentation, and test name updates
2015-05-02 15:15:13 -04:00
PJ Dietz
f98ee59e4a
Refactor validation for withUploadedFiles
2015-05-02 13:46:32 -04:00
PJ Dietz
81055c3bd9
Update ServerRequest:: addUploadedFilesToBranch to allow associate array at last level of $_FILES
2015-05-02 13:27:38 -04:00
PJ Dietz
a93b37a548
Update UploadedFile's tests for SAPI and use of *_uploaded_file functions
2015-05-02 10:11:08 -04:00
PJ Dietz
257f2b7610
Update uploaded file functionality in ServerRequest
2015-04-30 22:10:40 -04:00
PJ Dietz
b76883c9e9
Update reading $_FILES to UploadedFiles to conform to updates to PSR-7
2015-04-30 20:45:26 -04:00
PJ Dietz
adf8def961
Update docblocks for Message namespace
2015-04-29 21:09:05 -04:00
PJ Dietz
086b09db4f
Changes to match updates to PSR-7 in progress
2015-04-29 18:32:13 -04:00
PJ Dietz
2e7783d19d
Message::getHeaderLine returns an empty string when the header is not set.
2015-04-29 07:42:40 -04:00
PJ Dietz
5eb30ccafb
Rename UploadedFile::move to moveTo
2015-04-29 07:21:56 -04:00
PJ Dietz
af9fbf9c50
Refactor constructor parameters for headers and body to Message
2015-04-27 11:46:36 -04:00
PJ Dietz
cee55cada0
Add parameters for Request::__construct
2015-04-26 22:55:48 -04:00
PJ Dietz
4d5430e589
Add parameters to Response::__construct
2015-04-26 22:55:27 -04:00
PJ Dietz
1b0fccfe0e
ServerRequest::getServerRequest builds URI
2015-04-26 22:13:33 -04:00