Ejemplo n.º 1
0
 public function testHandleRequest()
 {
     $dic = new ServiceLocator();
     $dic->register('http_kernel', function () {
         return new DummyHttpKernel();
     });
     $kernel = new Kernel($dic);
     $response = $kernel->handle(Request::create('GET', '/'));
     $this->assertInstanceOf(Response::class, $response);
     $this->assertSame('DUMMY!', $response->getBody());
 }
Ejemplo n.º 2
0
 /**
  * @return Kernel
  */
 public static function instance()
 {
     if (Kernel::$instance == null) {
         Kernel::$instance = new Kernel();
     }
     return Kernel::$instance;
 }
Ejemplo n.º 3
0
 public function build(Template $template, array $data = [])
 {
     $buffer = $template->getContent();
     if (strpos($buffer, '@SET_LAYOUT') !== false) {
         $layoutTemp = explode("SET_LAYOUT '", $buffer)[1];
         $layoutTemp = explode("';", $layoutTemp)[0];
         $layout = new Template();
         $layout->setFile(\Framework\Kernel::instance()->getApplicationRoot() . "/../App/Views/" . $layoutTemp . ".phtml");
         $layoutContent = $layout->getContent();
         $data = explode("\n", $buffer);
         $data[0] = "";
         $buffer = implode("\n", $data);
         $buffer = str_replace("@BODY_SECTION", $buffer, $layoutContent);
     }
     $temp = $buffer;
     preg_match_all('/\\{{(.*?)\\}}/', $temp, $logic);
     foreach ($logic[1] as $key => $value) {
         $tmp = trim($value);
         $mustEcho = false;
         if (strpos($tmp, " ") === false && strpos($tmp, "--") === false && strpos($tmp, "++") === false && strpos($tmp, "=") === false && $tmp[0] === "\$") {
             $mustEcho = true;
         }
         $buffer = str_replace($logic[0][$key], ($mustEcho ? "<?=" : '<?php ') . $value . ' ?>', $buffer);
     }
     return $buffer;
 }
Ejemplo n.º 4
0
<?php

require_once __DIR__ . "/../vendor/autoload.php";
use Framework\ControllerFactory;
use Framework\Http\Request;
use Framework\Http\StreamableInterface;
use Framework\Kernel;
use Framework\Routing\Loader\CompositeFileLoader;
use Framework\Routing\Loader\PhpFileLoader;
use Framework\Routing\Loader\XmlFileLoader;
use Framework\Routing\Router;
use Framework\Templating\BracketRenderer;
use Framework\Templating\PhpRenderer;
$loader = new Twig_Loader_Filesystem(__DIR__ . '/../app/views');
$twig = new Twig_Environment($loader, array('cache' => __DIR__ . '/../app/cache/twig', 'debug' => true));
$renderer = new PhpRenderer(__DIR__ . "/../app/views");
$renderer = new BracketRenderer(__DIR__ . '/../app/views');
$renderer = new \Framework\Templating\TwigRendererAdapter($twig);
$loader = new CompositeFileLoader();
$loader->add(new PhpFileLoader());
$loader->add(new XmlFileLoader());
$router = new Router(__DIR__ . "/../app/config/routes.xml", $loader);
$kernel = new Kernel($router, new ControllerFactory(), $renderer);
$response = $kernel->handle(Request::createFromGlobals());
if ($response instanceof StreamableInterface) {
    $response->send();
}
Ejemplo n.º 5
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use Framework\Http\Request;
use Framework\Http\StreamableInterface;
use Framework\Kernel;
$protocol = explode('/', $_SERVER['SERVER_PROTOCOL']);
$path = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/';
$request = new Request($_SERVER['REQUEST_METHOD'], $path, $protocol[0], $protocol[1]);
$kernel = new Kernel();
$response = $kernel->handle($request);
if ($response instanceof StreamableInterface) {
    $response->send();
}
Ejemplo n.º 6
0
 public function view($templateName)
 {
     $template = new Template();
     $template->setFile(Kernel::instance()->getApplicationRoot() . "/../App/Views/" . $templateName . ".phtml");
     return new ActionResult($template, $this);
 }
Ejemplo n.º 7
0
<?php

session_start();
require_once '../Config/App.php';
function __autoload($namespace)
{
    $path = '../' . str_replace("\\", DIRECTORY_SEPARATOR, $namespace) . '.php';
    if (file_exists($path)) {
        require_once $path;
    }
}
echo \Framework\Kernel::instance()->start(dirname(__FILE__));