public static function run()
    {
        if (self::$isInit === true) {
            if ((self::$rawRequest instanceof RawRequest) === false) {
                throw new RuntimeException('Raw request was not specified!');
            }
            self::$request = new Request(self::$rawRequest, self::$routes);
            self::$controllers = array();
            self::$response = new Response();
            try {
                ob_start();
                $before = self::$request->getBefore();
                foreach ($before as $b) {
                    $controller = Controllers::get($b['class']);
                    $action = $b['action'];
                    $controller->$action(self::$request, self::$response);
                    if (self::$request->hasEnded() === true) {
                        break;
                    }
                }
                if (self::$request->hasEnded() === false) {
                    $controller = Controllers::get(self::$request->getClass());
                    $action = self::$request->getAction();
                    $controller->$action(self::$request, self::$response);
                    if (self::$request->hasEnded() === false) {
                        $after = self::$request->getAfter();
                        foreach ($after as $a) {
                            $controller = Controllers::get($a['class']);
                            $action = $a['action'];
                            $controller->$action(self::$request, self::$response);
                        }
                    }
                }
                $render = self::$response->getRender();
                if (!($render instanceof RenderInterface)) {
                    throw new NotARender('response->render is a non RenderInterface implementing object');
                }
                echo $render->render(self::$response->data);
                ob_end_flush();
            } catch (\Exception $e) {
                ob_end_clean();
                throw $e;
            }
        }
    }
public static function run()
    {
        if (self::$isInit === true) {
            if ((self::$rawRequest instanceof RawRequest) === false) {
                throw new RuntimeException('Raw request was not specified!');
            }
            self::$request = new Request(self::$rawRequest, self::$routes);
            self::$controllers = array();
            self::$response = new Response();
            try {
                ob_start();
                $before = self::$request->getBefore();
                foreach ($before as $b) {
                    $controller = Controllers::get($b['class']);
                    $action = $b['action'];
                    $controller->$action(self::$request, self::$response);
                    if (self::$request->hasEnded() === true) {
                        break;
                    }
                }
                if (self::$request->hasEnded() === false) {
                    $controller = Controllers::get(self::$request->getClass());
                    $action = self::$request->getAction();
                    $controller->$action(self::$request, self::$response);
                    if (self::$request->hasEnded() === false) {
                        $after = self::$request->getAfter();
                        foreach ($after as $a) {
                            $controller = Controllers::get($a['class']);
                            $action = $a['action'];
                            $controller->$action(self::$request, self::$response);
                        }
                    }
                }
                $render = self::$response->getRender();
                if (!($render instanceof RenderInterface)) {
                    throw new NotARender('response->render is a non RenderInterface implementing object');
                }
                echo $render->render(self::$response->data);
                ob_end_flush();
            } catch (\Exception $e) {
                ob_end_clean();
                throw $e;
            }
        }
    }
public static function run ( ) { if ( self :: $ isInit === true ) { if ( ( self :: $ rawRequest instanceof RawRequest ) === false ) { throw new RuntimeException ( 'Raw request was not specified!' ) ; } self :: $ request = new Request ( self :: $ rawRequest , self :: $ routes ) ; self :: $ controllers = array ( ) ; self :: $ response = new Response ( ) ; try { ob_start ( ) ; $ before = self :: $ request -> getBefore ( ) ; foreach ( $ before as $ b ) { $ controller = Controllers :: get ( $ b [ 'class' ] ) ; $ action = $ b [ 'action' ] ; $ controller -> $ action ( self :: $ request , self :: $ response ) ; if ( self :: $ request -> hasEnded ( ) === true ) { break ; } } if ( self :: $ request -> hasEnded ( ) === false ) { $ controller = Controllers :: get ( self :: $ request -> getClass ( ) ) ; $ action = self :: $ request -> getAction ( ) ; $ controller -> $ action ( self :: $ request , self :: $ response ) ; if ( self :: $ request -> hasEnded ( ) === false ) { $ after = self :: $ request -> getAfter ( ) ; foreach ( $ after as $ a ) { $ controller = Controllers :: get ( $ a [ 'class' ] ) ; $ action = $ a [ 'action' ] ; $ controller -> $ action ( self :: $ request , self :: $ response ) ; } } } $ render = self :: $ response -> getRender ( ) ; if ( ! ( $ render instanceof RenderInterface ) ) { throw new NotARender ( 'response->render is a non RenderInterface implementing object' ) ; } echo $ render -> render ( self :: $ response -> data ) ; ob_end_flush ( ) ; } catch ( \ Exception $ e ) { ob_end_clean ( ) ; throw $ e ; } } }
Launch the logic stuff. Http need to be initialized beforehand.

@static
@throws NotARender if response->render is a non RenderInterface implementing object
Launch the logic stuff . Http need to be initialized beforehand .