public function setController($controller) { $cfg =& DI::get("config")->framework; $appName = $cfg->appName; $ds = DIRECTORY_SEPARATOR; $cPath = sprintf('%s/controller', \apf\core\Kernel::getAppDir()); $controller = ucwords(preg_replace("/\\W/", '', $controller)); $this->setControllerPath($cPath); $dir = new \DirectoryIterator($cPath); foreach ($dir as $file) { $file = $file->getFileName(); if ($file == '.' || $file == '..') { continue; } $file = substr($file, 0, strpos($file, 'Controller')); if (strtolower($file) == strtolower($controller)) { $controller = $file; break; } } $_controller = sprintf('%s%s', $controller, 'Controller'); $ctrl = sprintf('%s%s%s.class.php', $cPath, $ds, $_controller); if (!file_exists($ctrl)) { if (empty($cfg->default_controller)) { $this->status = 404; return; } $ctrl = sprintf('%s%s%s%s.class.php', $cPath, $ds, ucwords($cfg->default_controller), "Controller"); if (!file_exists($ctrl)) { $this->status = 404; return; } $controller = sprintf('%s', ucwords($cfg->default_controller)); } $this->controller = ucwords($controller); return $this; }