<?php/** A Controller is dedicated to process a request* its responsabilities are:* - analyses the action to be done* - analyses the parameters* - act on the model objects to perform the action* - process the data* - call the view and passes it the data* - return the response*/abstractclassController{protected$name;protected$request;publicfunction__construct($name,$request){$this->request=$request;$this->name=$name;}publicabstractfunctionprocessRequest();publicfunctionexecute(){$response=$this->processRequest();if(empty($response)){// $response = Response::serverErrorResponse("error processing request in ". self::class); // Oh my PHP!$response=Response::serverErrorResponse("error processing request in ".static::class);}return$response;}}