114 lines
3.7 KiB
PHP
114 lines
3.7 KiB
PHP
<?php
|
|
/**
|
|
* functions/routes.php
|
|
*
|
|
* This class is used to return file and directory locations.
|
|
*
|
|
* @version 1.0.5
|
|
* @author Joey Kimsey <Joey@thetempusproject.com>
|
|
* @link https://TheTempusProject.com/libraries/Hermes
|
|
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
|
|
*/
|
|
|
|
namespace TheTempusProject\Hermes\Functions;
|
|
|
|
class Route {
|
|
public static function testRouting() {
|
|
// @todo - wtf
|
|
// $url = Routes::getAddress( true ) . DEFAULT_CONTROLLER_CLASS . '/' . DEFAULT_CONTROLLER_METHOD;
|
|
// echo '<pre>' . var_export( $url, true ) . '</pre>';
|
|
// $host = gethostbyname( $url );
|
|
// echo '<pre>' . var_export( $url, true ) . '</pre>';
|
|
// $host = dns_get_record( $url );
|
|
// echo '<pre>' . var_export( $url, true ) . '</pre>';
|
|
// $headers = @get_headers( $url );
|
|
// echo '<pre>' . var_export( $headers, true ) . '</pre>';
|
|
// $file = true;
|
|
// echo '<pre>' . var_export( $file, true ) . '</pre>';
|
|
// exit;
|
|
return true;
|
|
$headers = get_headers( $url );
|
|
if ( empty( $headers ) ) {
|
|
return false;
|
|
}
|
|
$response_code = substr( $headers[0], 9, 3 );
|
|
if ( $response_code != '200' ) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Determines if the server is using a secure transfer protocol or not.
|
|
*
|
|
* @return string - The string representation of the server's transfer protocol
|
|
*/
|
|
public static function getProtocol() {
|
|
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') {
|
|
return 'https';
|
|
}
|
|
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
|
|
return 'https';
|
|
}
|
|
if (!empty($_SERVER['HTTP_X_FORWARDED_PORT']) && $_SERVER['HTTP_X_FORWARDED_PORT'] == 443) {
|
|
return 'https';
|
|
}
|
|
if (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
|
|
return 'https';
|
|
}
|
|
return 'http';
|
|
}
|
|
|
|
public static function getHost( $internal = false ) {
|
|
// @todo - wtf
|
|
$host = $_SERVER['HTTP_HOST'];
|
|
if ( true === $internal ) {
|
|
// if ( 'docker' === getenv( 'APP_ENV' ) ) {
|
|
// if ( Check::isNginx() ) {
|
|
// $host = 'webone';
|
|
// } elseif ( Check::isApache() ) {
|
|
// $host = 'webtwo';
|
|
// } else {
|
|
// $host = '127.0.0.1';
|
|
// }
|
|
// }
|
|
}
|
|
return $host;
|
|
}
|
|
|
|
/**
|
|
* Finds the root directory of the application.
|
|
*
|
|
* @return string - The applications root directory.
|
|
*/
|
|
public static function getRoot() {
|
|
$fullArray = explode( '/', $_SERVER['PHP_SELF'] );
|
|
array_pop( $fullArray ); // removes the current file name (index.php)
|
|
$route = implode( '/', $fullArray ) . '/';
|
|
return $route;
|
|
}
|
|
|
|
/**
|
|
* finds the physical location of the application
|
|
*
|
|
* @return string - The root file location for the application.
|
|
*/
|
|
public static function getAddress( $internal = false ) {
|
|
return self::getProtocol() . '://' . self::getHost( $internal ) . self::getRoot();
|
|
}
|
|
|
|
public static function getRequestUrl( $includeParams = true ) {
|
|
return self::getProtocol() . '://' . self::getHost() . self::getUri( $includeParams );
|
|
}
|
|
|
|
public static function getUri( $includeParams = true ) {
|
|
if ( true === $includeParams ) {
|
|
$out = $_SERVER['REQUEST_URI'];
|
|
} else {
|
|
$explodedSelect = explode( '?', $_SERVER['REQUEST_URI'] );
|
|
$out = $explodedSelect[0];
|
|
}
|
|
return $out;
|
|
}
|
|
}
|