MIDDAG for Moodle

example_controller extends controller

Demo controller showcasing multiple route styles and return types.

Table of Contents

Methods

api_echo()  : JsonResponse
Accept POST data.
api_info()  : JsonResponse
JSON API style.
article()  : Response
Slug alfanumérico e hífens (ex: /article/my-first-post).
course()  : Response
ID numérico obrigatório (ex: /course/42).
greet()  : Response
Dynamic parameter.
hello()  : Response
Simple text/HTML output.
home()  : Response
Home page.
not_found()  : Response
Fallback “not found” page.
report()  : Response
Data no formato YYYY-MM-DD (ex: /report/2025-12-31).
search()  : Response
Parâmetro opcional com regex e valor padrão.
userOrder()  : Response
Dois parâmetros com restrições (ex: /user/15/order/2023-09-10).
widget()  : Response
Example rendering a custom widget.

Methods

api_echo()

Accept POST data.

public api_echo(Request $request) : JsonResponse
Parameters
$request : Request
Attributes
#[Route]
$path: '/api/echo'
$name: 'example_api_echo'
$methods: ['POST']
Return values
JsonResponse

api_info()

JSON API style.

public api_info() : JsonResponse
Attributes
#[Route]
$path: '/api/info'
$name: 'example_api_info'
$methods: ['GET']
Return values
JsonResponse

article()

Slug alfanumérico e hífens (ex: /article/my-first-post).

public article(string $slug) : Response
Parameters
$slug : string
Attributes
#[Route]
$path: '/article/{slug}'
$name: 'example_article'
$requirements: ['slug' => '[a-z0-9-]+']
$methods: ['GET']
Return values
Response

course()

ID numérico obrigatório (ex: /course/42).

public course(int $id) : Response
Parameters
$id : int
Attributes
#[Route]
$path: '/course/{id}'
$name: 'example_course'
$requirements: ['id' => '\d+']
$methods: ['GET']
Return values
Response

greet()

Dynamic parameter.

public greet(string $name) : Response
Parameters
$name : string
Attributes
#[Route]
$path: '/greet/{name}'
$name: 'example_greet'
$requirements: ['name' => '[A-Za-z]+']
$methods: ['GET']
Return values
Response

hello()

Simple text/HTML output.

public hello() : Response
Attributes
#[Route]
$path: '/hello'
$name: 'example_hello'
$methods: ['GET']
Return values
Response

home()

Home page.

public home() : Response
Attributes
#[Route]
$path: '/'
$name: 'example_home'
$methods: ['GET']
Return values
Response

not_found()

Fallback “not found” page.

public not_found() : Response
Attributes
#[Route]
$path: '/not_found'
$name: 'example_not_found'
$methods: ['GET']
Return values
Response

report()

Data no formato YYYY-MM-DD (ex: /report/2025-12-31).

public report(string $date) : Response
Parameters
$date : string
Attributes
#[Route]
$path: '/report/{date}'
$name: 'example_report'
$requirements: ['date' => '\d{4}-\d{2}-\d{2}']
$methods: ['GET']
Return values
Response

Parâmetro opcional com regex e valor padrão.

public search([string $term = '' ]) : Response

Exemplo: /search ou /search/symfony.

Parameters
$term : string = ''
Attributes
#[Route]
$path: '/search/{term}'
$name: 'example_search'
$requirements: ['term' => '[A-Za-z0-9]*']
$methods: ['GET']
Return values
Response

userOrder()

Dois parâmetros com restrições (ex: /user/15/order/2023-09-10).

public userOrder(int $uid, string $orderDate) : Response
Parameters
$uid : int
$orderDate : string
Attributes
#[Route]
$path: '/user/{uid}/order/{orderDate}'
$name: 'example_user_order'
$requirements: [ 'uid' => '\d+', // apenas números 'orderDate' => '\d{4}-\d{2}-\d{2}', ]
$methods: ['GET']
Return values
Response

widget()

Example rendering a custom widget.

public widget() : Response
Attributes
#[Route]
$path: '/widget'
$name: 'example_widget'
$methods: ['GET']
Return values
Response

        
On this page

Search results