{"action":"published","release":{"url":"https://api.github.com/repos/mvc5/mvc5-application/releases/4284600","assets_url":"https://api.github.com/repos/mvc5/mvc5-application/releases/4284600/assets","upload_url":"https://uploads.github.com/repos/mvc5/mvc5-application/releases/4284600/assets{?name,label}","html_url":"https://github.com/mvc5/mvc5-application/releases/tag/3.2.5","id":4284600,"tag_name":"3.2.5","target_commitish":"master","name":"Automatic Routes and Response Emitters","draft":false,"author":{"login":"devosc","id":61002,"avatar_url":"https://avatars.githubusercontent.com/u/61002?v=3","gravatar_id":"","url":"https://api.github.com/users/devosc","html_url":"https://github.com/devosc","followers_url":"https://api.github.com/users/devosc/followers","following_url":"https://api.github.com/users/devosc/following{/other_user}","gists_url":"https://api.github.com/users/devosc/gists{/gist_id}","starred_url":"https://api.github.com/users/devosc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devosc/subscriptions","organizations_url":"https://api.github.com/users/devosc/orgs","repos_url":"https://api.github.com/users/devosc/repos","events_url":"https://api.github.com/users/devosc/events{/privacy}","received_events_url":"https://api.github.com/users/devosc/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-10-02T05:51:09Z","published_at":"2016-10-02T23:49:14Z","assets":[],"tarball_url":"https://api.github.com/repos/mvc5/mvc5-application/tarball/3.2.5","zipball_url":"https://api.github.com/repos/mvc5/mvc5-application/zipball/3.2.5","body":"Routes can now be automatically matched to a controller by matching the first two parameters of the URL, and assigning them to the request as controller and action parameters. When a request is being matched to a route and does not have a controller configuration, the new controller route match class will use the controller and action request parameters as the name of the controller to use. This allows a website to have a single route configuration for all controllers.\r\n\r\nVarious aspects of building the controller name can be configured. For example, they can be prefixed with a specified namespace and they should have a suffix configuration to ensure the class being loaded is a controller. By default, the name of the controller and action will be transformed by upper casing their first letter and any words separated by a hyphen or an underscore. This allows the autoloader to find the class by its file name. However, finer control of matching a controller can be achieved by using a service loader. Using a service loader also allows a strict mode that does not transform the case of the controller or action name. Instead, each controller can have a corresponding service configuration. This allows the service loader to control which controllers are available and how to locate them.\r\n\r\nResponse emitter classes have also been added and the body of a response can now be an anonymous function. This allows delaying the invocation of functions that send output directly to the browser to occur when the response is being sent, e.g readfile and passthru.\r\n\r\nExamples have been added to the demo web application."}}
{"actor":{"display_login":"devosc"}}