index uses the super-global variable $_REQUEST which is generally not recommended.
Instead of super-globals, we recommend to explicitly inject the dependencies
of your class. This makes your code less dependent on global state and it
becomes generally more testable:
// BadclassRouter{publicfunctiongenerate($path){return$_SERVER['HOST'].$path;}}// BetterclassRouter{private$host;publicfunction__construct($host){$this->host=$host;}publicfunctiongenerate($path){return$this->host.$path;}}classController{publicfunctionmyAction(Request$request){// Instead of$page=isset($_GET['page'])?intval($_GET['page']):1;// Better (assuming you use the Symfony2 request)$page=$request->query->get('page',1);}}
Loading history...
12
{
13
try {
14
if (!array_key_exists('event', $_REQUEST)) {
15
throw new Exception('No event defined');
16
}
17
18
if (!array_key_exists('context', $_REQUEST)) {
19
throw new Exception('No context defined');
20
}
21
22
$context = json_decode($_REQUEST['context']);
23
24
if (!$context) {
25
throw new Exception('Invalid context');
26
}
27
28
$class = 'Listeners';
29
foreach (explode('.', $_REQUEST['event']) as $part) {
Instead of super-globals, we recommend to explicitly inject the dependencies of your class. This makes your code less dependent on global state and it becomes generally more testable: