{"action":"created","issue":{"url":"https://api.github.com/repos/http-interop/http-middleware/issues/43","repository_url":"https://api.github.com/repos/http-interop/http-middleware","labels_url":"https://api.github.com/repos/http-interop/http-middleware/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/http-interop/http-middleware/issues/43/comments","events_url":"https://api.github.com/repos/http-interop/http-middleware/issues/43/events","html_url":"https://github.com/http-interop/http-middleware/issues/43","id":193350740,"number":43,"title":"`ServerMiddlewareInterface::process` leads to lesser strict type-hinting","user":{"login":"schnittstabil","id":6059032,"avatar_url":"https://avatars.githubusercontent.com/u/6059032?v=3","gravatar_id":"","url":"https://api.github.com/users/schnittstabil","html_url":"https://github.com/schnittstabil","followers_url":"https://api.github.com/users/schnittstabil/followers","following_url":"https://api.github.com/users/schnittstabil/following{/other_user}","gists_url":"https://api.github.com/users/schnittstabil/gists{/gist_id}","starred_url":"https://api.github.com/users/schnittstabil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schnittstabil/subscriptions","organizations_url":"https://api.github.com/users/schnittstabil/orgs","repos_url":"https://api.github.com/users/schnittstabil/repos","events_url":"https://api.github.com/users/schnittstabil/events{/privacy}","received_events_url":"https://api.github.com/users/schnittstabil/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-12-04T13:25:09Z","updated_at":"2016-12-05T15:34:08Z","closed_at":"2016-12-05T15:30:55Z","body":"A small micro-framework survey:\r\n```php\r\n// Slim Framework Team: Slim\r\n$app->get('/hello/{name}', function ($request, $response, $args) {…});\r\n\r\n// Sensiolabs: Silex\r\n$app->get('/hello/{name}', function ($name) use($app) {…}); \r\n\r\n// Laravel: Lumen\r\n$app->get('user/{id}', function ($id) {…});\r\n\r\n// Zend: Expressive\r\n$app->get('/path', function (ServerRequestInterface $request, ResponseInterface $response, callable $next) {…});\r\n```\r\n\r\nAll of them support anonymous functions. With `ServerMiddlewareInterface::__invoke` they may want to type-hint against `callable` at someday – with `ServerMiddlewareInterface::process` they will never be able to do – thus they must type-hint to `mixed` :unamused: \r\n\r\nMoreover, the same applies to every single future framework/container, which wants to support anonymous functions as well."},"comment":{"url":"https://api.github.com/repos/http-interop/http-middleware/issues/comments/264885208","html_url":"https://github.com/http-interop/http-middleware/issues/43#issuecomment-264885208","issue_url":"https://api.github.com/repos/http-interop/http-middleware/issues/43","id":264885208,"user":{"login":"schnittstabil","id":6059032,"avatar_url":"https://avatars.githubusercontent.com/u/6059032?v=3","gravatar_id":"","url":"https://api.github.com/users/schnittstabil","html_url":"https://github.com/schnittstabil","followers_url":"https://api.github.com/users/schnittstabil/followers","following_url":"https://api.github.com/users/schnittstabil/following{/other_user}","gists_url":"https://api.github.com/users/schnittstabil/gists{/gist_id}","starred_url":"https://api.github.com/users/schnittstabil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schnittstabil/subscriptions","organizations_url":"https://api.github.com/users/schnittstabil/orgs","repos_url":"https://api.github.com/users/schnittstabil/repos","events_url":"https://api.github.com/users/schnittstabil/events{/privacy}","received_events_url":"https://api.github.com/users/schnittstabil/received_events","type":"User","site_admin":false},"created_at":"2016-12-05T15:34:08Z","updated_at":"2016-12-05T15:34:08Z","body":"I don't understand. What is the difference? I think the same applies to the single-pass approach."}}
{"actor":{"display_login":"schnittstabil"}}