/** * @covers \Phix\App::pathInfo */ public function testPathInfoNeedingBaseUrl() { $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['REQUEST_URI'] = '/test/index.php/ctrl-name/act-name'; $app = new App(); $this->assertEquals('/test/index.php/ctrl-name/act-name', $app->requestUri()); $app->baseUrl('/test/index.php'); $this->assertEquals('/test/index.php', $app->baseUrl()); $requestUri = $app->requestUri(); $baseUrl = $app->baseUrl(); $pathInfo = substr($requestUri, strlen($baseUrl)); $this->assertTrue($pathInfo ? true : false); $this->assertEquals('/ctrl-name/act-name', $app->pathInfo(), "Expected {$pathInfo};"); }
<script src="/media/libs/jquery-1.12.0.min.js"></script> <script src="/media/libs/bs3/js/bootstrap.min.js"></script> <script src='/media/back/plugins/tinymce/tinymce.min.js'></script> <!-- <script src="external/jquery/jquery.js"></script>--> <script src="/media/libs/jquery-ui-1.11.4.sortable/jquery-ui.min.js"></script> <!-- Скрипти для загрузки файлов--> <script src='/media/back/plugins/bootstrap-fileinput-master/js/plugins/canvas-to-blob.min.js'></script> <script src='/media/back/plugins/bootstrap-fileinput-master/js/fileinput.min.js'></script> <script src='/media/back/plugins/bootstrap-fileinput-master/js/fileinput_locale_LANG.js'></script> <script src='/media/back/plugins/jquery.mjs.nestedSortable.js'></script> </head> <body> <div id="main" data-base-url="<?php echo App::baseUrl(); ?> " data-current-lang-iso="<?php echo Lang::instance()->getCurrentLang()['iso']; ?> " data-uri-ext="<?php echo App::URI_EXT; ?> " data-redirect=""> <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span>
protected function __construct($config) { if (count($config["db"]) != 4) { throw new \Exception("Le nombre d'arguments n'est pas valable!"); } spl_autoload_register(array(__CLASS__, 'autoload')); self::$config = $config; self::$database = new Core\Db\ConnectPDO(self::$config["db"]); self::$baseUrl = rtrim(dirname($_SERVER['PHP_SELF']), '/.\\'); $route = isset($_GET["r"]) ? $_GET["r"] : $_SERVER["REQUEST_URI"]; $url = parse_url($route); $path = preg_replace('/^' . preg_quote(self::$baseUrl, '/') . '\\//', "", $url["path"]); $query = @$url["query"]; $method = $_SERVER['REQUEST_METHOD']; $request = new Core\Http\Request($method, $path, $query); $dispatcher = new Core\Http\Dispatcher(); try { $dispatcher->handle($request); } catch (Exception $e) { $code = '404'; header($_SERVER["SERVER_PROTOCOL"] . " " . $code); $request = new Core\Http\Request('GET', 'Site/error', 'code=' . $code . '&message=' . $e->getMessage()); $dispatcher->handle($request); } }