Ejemplo n.º 1
0
 public static function renderFile($name, $viewContext)
 {
     if (empty($name)) {
         return;
     }
     $path = __DIR__ . DIRECTORY_SEPARATOR . $name . '.phtml';
     ob_start();
     try {
         include $path;
         $output = ob_get_contents();
     } finally {
         ob_end_clean();
     }
     if (HttpHeadersHelper::getCurrentHeader('Content-Type') != 'text/html' && HttpHeadersHelper::getCurrentHeader('Content-Type') != 'text/html;charset=UTF-8') {
         echo $output;
         return;
     }
     $output = str_replace(' />', '/>', $output);
     $output = str_replace(' >', '>', $output);
     $output = preg_replace_callback('/<[^>]+>/', function ($m) {
         return str_replace("\t", ' ', $m[0]);
     }, $output);
     $output = str_replace(["\t", "\r", "\n"], '', $output);
     $i = strpos($output, '  ');
     while ($i !== false) {
         $output = substr_replace($output, '', $i, 1);
         $i = strpos($output, '  ', $i);
     }
     echo $output;
 }
Ejemplo n.º 2
0
            if ($controllerContext->cache->isFresh($url)) {
                $controllerContext->cache->load($url);
                flush();
            } else {
                $f = function () use($workingClassName, $controllerContext, $viewContext) {
                    $workingClassName::work($controllerContext, $viewContext);
                    View::render($viewContext);
                };
                if (!$controllerContext->cache->isBypassed()) {
                    $controllerContext->cache->save($url, $f);
                } else {
                    $f();
                }
            }
            $workingClassName::postWork($controllerContext, $viewContext);
            if (HttpHeadersHelper::getCurrentHeader('Content-Type') == 'text/html' || HttpHeadersHelper::getCurrentHeader('Content-Type') == 'text/html;charset=UTF-8') {
                printf('<!-- retrieved in %.05fs -->', microtime(true) - $viewContext->renderStart);
            }
            exit(0);
        }
        $viewContext->viewName = 'error-404';
        View::render($viewContext);
    } catch (Exception $e) {
        #log error information
        $logger->log($e);
        $viewContext->viewName = 'error';
        $viewContext->exception = $e;
        View::render($viewContext);
    }
    exit(1);
}
Ejemplo n.º 3
0
            if ($controllerContext->cache->isFresh($url)) {
                $controllerContext->cache->load($url);
                flush();
            } else {
                $f = function () use($workingClassName, $controllerContext, $viewContext) {
                    $workingClassName::work($controllerContext, $viewContext);
                    View::render($viewContext);
                };
                if (!$controllerContext->cache->isBypassed()) {
                    $controllerContext->cache->save($url, $f);
                } else {
                    $f();
                }
            }
            $workingClassName::postWork($controllerContext, $viewContext);
            if (HttpHeadersHelper::getCurrentHeader('Content-Type') == 'text/html') {
                printf('<!-- retrieved in %.05fs -->', microtime(true) - $viewContext->renderStart);
            }
            exit(0);
        }
        $viewContext->viewName = 'error-404';
        View::render($viewContext);
    } catch (Exception $e) {
        #log error information
        $logger->log($e);
        $viewContext->viewName = 'error';
        $viewContext->exception = $e;
        View::render($viewContext);
    }
    exit(1);
}