9.3 Controllers output

Every Controller in his handle method must produce an output to be processed by Response. It can happen in 3 ways: 1) the Controller directly produce an output, using echo; 2) the Controller set an output content to Response: $Response->setContent($output); 3) the Controller ask to render a View: $Response->setView($view);

Lets see an example for each of them.

Direct output

<?php
/**
 * @param \metadigit\core\http\Request $Req
 * @param \metadigit\core\http\Response $Res
 * @param string $name
 */
function myAction(Request $Req, Response $Res, $name) {
	echo ‘Your name is ‘.$name;
}

Set output content to Response

<?php
/**
 * @param \metadigit\core\http\Request $Req
 * @param \metadigit\core\http\Response $Res
 * @param string $name
 */
function myAction(Request $Req, Response $Res, $name) {
	$output = 'Your name is '.$name;
	$Response->setContent($output);
}

Render a View

<?php
/**
 * @param \metadigit\core\http\Request $Req
 * @param \metadigit\core\http\Response $Res
 * @param string $name
 */
function myAction(Request $Req, Response $Res, $name) {
	$Response->set([
		‘name’ => $name,
		‘var’ => ‘some value’
	])->setView(‘my_view’);
}