7 PHP MVC Frameworks REST Controllers and Routing
7 PHP MVC Frameworks REST Controllers and Routing
• Controller
• Routing
• Request and Response
• REST
2
CONTROLLER
Controller
4
Controller
5
Controller
6
Controller
7
Controller
• 5-10-20 rule:
– 5 or less class variables
– 10 or less actions
– 20 or less lines of code for each action
8
Controller
• Requests, Controller, Response Lifecycle
9
Controller
10
Controller
• Symfony’s Base Controller - helper methods example
11
Controller
• Example
12
Routing
Routes and Mapping to Controller
Routing
• Process of breaking the URL into components and
deciding what script to call
14
Routing
15
Routing
• Annotation: @Route
16
Routing
17
Routing
• Route Parameters
• Annotation
18
Routing
• Route Parameters
• Additional parameters are converted to query parameters
• Parameters names passed to the controller must match route
parameters names
• Parameters and route parameters names must be the same
19
Request & Response
Request & Response
21
Request & Response
(app.php or app_dev.php)
• Router component matches the request and execute
controller
• Response object is returned
22
Request & Response
23
Request & Response
• Request Examples:
24
Request & Response
• Response
• Import the Response Object in controller class
25
Request & Response
JsonResponse
26
Request & Response
• Response Content-Types
– json - application/json
– xml - application/xml
– png image - image/png
– html - text/html
– full list of content types: developer.mozilla.org
27
Request & Response
Set Conten-type Examples
• Set Content-type Examples
28
REST
• What is REST?
– REpresentational State Transfer
• Interface from one program to another
• REST is stateless
• REST is resource based
29
REST & HTTP
• Request methods:
– GET - Get resource
– POST - Create resource
– PUT - Update resource
– PATCH - Partly update resource
– DELETE - Delete resource
– HEAD - Get headers for resource
• Response: json, xml
30
Summary
31