/** * On test les méthodes sur les IP et sur le CLI/AJAX */ public function testIpAndOther() { $request = RequestManager::getInstance(); $this->assertTrue($request->isCLI()); $this->assertFalse($request->isAjax()); $_SERVER['REMOTE_ADDR'] = '8.8.8.8'; $this->assertEquals('8.8.8.8', $request->Ip()); $_SERVER['HTTP_X_FORWARDED_FOR'] = '8.8.4.4'; $this->assertEquals('8.8.4.4', $request->Ip()); $_SERVER['HTTP_CLIENT_IP'] = '127.0.0.1'; $this->assertEquals('127.0.0.1', $request->Ip()); unset($_SERVER['HTTP_X_FORWARDED_FOR']); unset($_SERVER['HTTP_CLIENT_IP']); $this->assertEquals(['city' => 'Mountain View', 'state' => 'California', 'country' => 'United States', 'country_code' => 'US', 'continent' => 'North America', 'continent_code' => 'NA'], $request->IpInfo('aa', 'location')); $this->assertEquals('Mountain View, California, United States', $request->IpInfo('aa', 'address')); $this->assertEquals('Mountain View', $request->IpInfo('aa', 'city')); $this->assertEquals('California', $request->IpInfo('aa', 'state')); $this->assertEquals('California', $request->IpInfo('aa', 'region')); $this->assertEquals('United States', $request->IpInfo('aa', 'country')); $this->assertEquals('US', $request->IpInfo('aa', 'countrycode')); // Ip is right $this->assertEquals('US', $request->IpInfo('8.8.8.8', 'countrycode')); }
/** * Modifie la valeur temporairement du header * * @param string $headerName * @param mixed $value */ public static function setHeader($headerName, $value) { RequestManager::getInstance()->setHeader($headerName, $value); }
/** * Lance le router et appel les middlewares et le controller */ public function run() { $path = realpath(__DIR__ . '/../../bin/routes'); $configFolder = Config::get('folder'); if ($configFolder) { $routePath = $configFolder->routes; if ($routePath && file_exists($routePath)) { $path = $routePath; } } $rdi = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS); $rit = new RecursiveIteratorIterator($rdi); foreach ($rit as $file) { if ($file->getExtension() === 'php') { $pathFile = $file->getRealPath(); require "{$pathFile}"; } } $method = Request::method(); $routeReturn = !Request::isCLI(); $route = Router::parse(RequestManager::getInstance()->url, $method, $routeReturn); if ($route instanceof Route) { echo $route->run(); } }