Dispatcher.class.php 626 Bytes
Newer Older
Zohten's avatar
Zohten committed
1 2 3 4 5 6
<?php

/*
* Analyses a request, created the right Controller passing it the request
*/

Zohten's avatar
Zohten committed
7 8 9 10 11
class Dispatcher
{
    public static function dispatch($request)
    {
        return static::dispatchToController($request->getControllerName(), $request);
Zohten's avatar
Zohten committed
12 13
    }

Zohten's avatar
Zohten committed
14 15
    public static function dispatchToController($controllerName, $request)
    {
Zohten's avatar
Zohten committed
16 17
        $controllerClassName = ucfirst($controllerName) . 'Controller';

Zohten's avatar
Zohten committed
18
        if (!class_exists($controllerClassName)) {
Zohten's avatar
Zohten committed
19
            throw(new Exception("Class $controllerName does not exist"));
Zohten's avatar
Zohten committed
20
        }
Zohten's avatar
Zohten committed
21 22 23
        
        return new $controllerClassName($controllerName, $request);
    }
Zohten's avatar
Zohten committed
24
}