fix
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
/*!
|
||||
* Hybridauth
|
||||
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
|
||||
* (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
|
||||
*/
|
||||
|
||||
namespace Hybridauth\HttpClient;
|
||||
|
||||
use Hybridauth\Data;
|
||||
|
||||
/**
|
||||
* HttpClient\Util home to a number of utility functions.
|
||||
*/
|
||||
class Util
|
||||
{
|
||||
/**
|
||||
* Redirect handler.
|
||||
*
|
||||
* @var callable|null
|
||||
*/
|
||||
protected static $redirectHandler;
|
||||
|
||||
/**
|
||||
* Exit handler.
|
||||
*
|
||||
* @var callable|null
|
||||
*/
|
||||
protected static $exitHandler;
|
||||
|
||||
/**
|
||||
* Redirect to a given URL.
|
||||
*
|
||||
* In case your application need to perform certain required actions before Hybridauth redirect users
|
||||
* to IDPs websites, the default behaviour can be altered in one of two ways:
|
||||
* If callable $redirectHandler is defined, it will be called instead.
|
||||
* If callable $exitHandler is defined, it will be called instead of exit().
|
||||
*
|
||||
* @param string $url
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function redirect($url)
|
||||
{
|
||||
if (static::$redirectHandler) {
|
||||
return call_user_func(static::$redirectHandler, $url);
|
||||
}
|
||||
|
||||
header(sprintf('Location: %s', $url));
|
||||
|
||||
if (static::$exitHandler) {
|
||||
return call_user_func(static::$exitHandler);
|
||||
}
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect handler to which the regular redirect() will yield the action of redirecting users.
|
||||
*
|
||||
* @param callable $callback
|
||||
*/
|
||||
public static function setRedirectHandler($callback)
|
||||
{
|
||||
self::$redirectHandler = $callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Exit handler will be called instead of regular exit() when calling Util::redirect() method.
|
||||
*
|
||||
* @param callable $callback
|
||||
*/
|
||||
public static function setExitHandler($callback)
|
||||
{
|
||||
self::$exitHandler = $callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Current URL.
|
||||
*
|
||||
* @param bool $requestUri TRUE to use $_SERVER['REQUEST_URI'], FALSE for $_SERVER['PHP_SELF']
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getCurrentUrl($requestUri = false)
|
||||
{
|
||||
$collection = new Data\Collection($_SERVER);
|
||||
|
||||
$protocol = 'http://';
|
||||
|
||||
if (($collection->get('HTTPS') && $collection->get('HTTPS') !== 'off') ||
|
||||
$collection->get('HTTP_X_FORWARDED_PROTO') === 'https') {
|
||||
$protocol = 'https://';
|
||||
}
|
||||
|
||||
return $protocol .
|
||||
$collection->get('HTTP_HOST') .
|
||||
$collection->get($requestUri ? 'REQUEST_URI' : 'PHP_SELF');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user