/**
  * @return Controller
  */
 protected function makeControllerChain()
 {
     $this->controllerName = self::DEFAULT_CONTROLLER;
     if ($this->request->hasAttachedVar('area') && $this->request->getAttachedVar('area') && ClassUtils::isClassName($this->request->getAttachedVar('area'))) {
         $this->controllerName = $this->request->getAttachedVar('area');
     }
     return new $this->controllerName();
 }
 public function import($scope)
 {
     if (!($result = parent::import($scope))) {
         return $result;
     }
     if (!ClassUtils::isClassName($scope[$this->name]) || !$this->classExists($scope[$this->name]) || $this->ofClassName && !ClassUtils::isInstanceOf($scope[$this->name], $this->ofClassName)) {
         $this->value = null;
         return false;
     }
     return true;
 }
 public function testIsClassName()
 {
     $this->assertFalse(ClassUtils::isClassName(null));
     $this->assertFalse(ClassUtils::isClassName(''));
     $this->assertFalse(ClassUtils::isClassName(0));
     $this->assertFalse(ClassUtils::isClassName('0'));
     $this->assertTrue(ClassUtils::isClassName('A0'));
     $this->assertTrue(ClassUtils::isClassName('_'));
     $this->assertTrue(ClassUtils::isClassName('_1'));
     $this->assertTrue(ClassUtils::isClassName('Correct_Class1'));
 }
 private function fromState()
 {
     if ($this->checkKeyword($this->tokenizer->peek(), 'from')) {
         $this->tokenizer->next();
         $class = $this->tokenizer->next();
         $className = $this->getTokenValue($class, true);
         if (!$this->checkIdentifier($class) || !ClassUtils::isClassName($className)) {
             $this->error('invalid class name:', $className);
         }
         if (!class_exists($className, true)) {
             $this->error('class does not exists:', $className);
         }
         if (!ClassUtils::isInstanceOf($className, 'DAOConnected')) {
             $this->error('class must implement DAOConnected interface:', $className);
         }
         $this->oqlObject->setDao(call_user_func(array($className, 'dao')));
     } else {
         $this->error("expecting 'from' clause");
     }
     return self::WHERE_STATE;
 }
<?php

/**
 * $Id$
 **/
require '../../../config.inc.php';
define('DEFAULT_CONTROLLER', 'main');
try {
    $request = HttpRequest::create()->setGet($_GET)->setPost($_POST)->setCookie($_COOKIE)->setServer($_SERVER)->setFiles($_FILES);
    $controllerName = DEFAULT_CONTROLLER;
    RouterRewrite::me()->setBaseUrl(HttpUrl::create()->parse(PATH_WEB))->addRoute('default', RouterTransparentRule::create(':area/*')->setDefaults(array('area' => DEFAULT_CONTROLLER)))->route($request);
    if ($request->hasGetVar('area') && ClassUtils::isClassName($_GET['area']) && defined('PATH_CONTROLLERS') && is_readable(PATH_CONTROLLERS . $request->getGetVar('area') . EXT_CLASS)) {
        $controllerName = $request->getGetVar('area');
    } elseif ($request->hasAttachedVar('area') && ClassUtils::isClassName($request->getAttachedVar('area')) && defined('PATH_CONTROLLERS') && is_readable(PATH_CONTROLLERS . $request->getAttachedVar('area') . EXT_CLASS)) {
        $controllerName = $request->getAttachedVar('area');
    }
    $controller = new $controllerName();
    $modelAndView = $controller->handleRequest($request);
    $view = $modelAndView->getView();
    $model = $modelAndView->getModel();
    $prefix = PATH_WEB . '?area=';
    if (!$view) {
        $view = $controllerName;
    } elseif (is_string($view) && $view == 'error') {
        $view = new RedirectView($prefix);
    } elseif ($view instanceof RedirectToView) {
        $view->setPrefix($prefix);
    }
    if (!$view instanceof View) {
        $viewName = $view;
        $view = PhpViewResolver::create(PATH_TEMPLATES, EXT_TPL)->resolveViewName($viewName);