コード例 #1
0
ファイル: PhpFileCache.php プロジェクト: jdauie/bramble
 public function clear()
 {
     $files = Directory::search($this->m_cache, Directory::R_ANY);
     foreach ($files as $file) {
         unlink($file);
         Log::debug(sprintf('[delete] %s', str_replace('\\', '/', $file)));
     }
     return $files;
 }
コード例 #2
0
ファイル: RouteMap.php プロジェクト: jdauie/bramble
 /**
  * @param bool $rebuild
  * @return RouteMap
  */
 public static function instance($rebuild = false)
 {
     return Cache::load('routes', function () {
         $lookup = [];
         // todo: add support for optional centralized routes
         foreach (Directory::search(BRAMBLE_DIR . '/Controllers', Directory::R_PHP, [Directory::R_HIDDEN]) as $file) {
             $controller_name = sprintf('%s\\%s', BRAMBLE_NS, substr(substr($file, strlen(BRAMBLE_DIR) + 1), 0, -4));
             $reflection_class = new \ReflectionClass($controller_name);
             if (!$reflection_class->isAbstract()) {
                 $controller = new $controller_name(Request::get());
                 if (!$controller instanceof Controller) {
                     throw new \Exception('Only controllers are allowed in this directory');
                 }
                 foreach ($controller->routes() as $route) {
                     $route->defaults(['controller' => $controller_name]);
                     $route->compile($lookup);
                 }
             }
         }
         return new self($lookup);
     }, $rebuild);
 }
コード例 #3
0
ファイル: DebugController.php プロジェクト: jdauie/bramble
 private static function get_reflection_controllers()
 {
     foreach (Directory::search(BRAMBLE_DIR . '/Controllers', Directory::R_PHP) as $file) {
         $controller_name = sprintf('%s\\%s', BRAMBLE_NS, substr(substr($file, strlen(BRAMBLE_DIR) + 1), 0, -4));
         try {
             $reflect = new \ReflectionClass($controller_name);
             if (!$reflect->isAbstract()) {
                 (yield $reflect);
             }
         } catch (\Exception $e) {
         }
     }
 }