mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-01 06:20:46 +02:00
[ticket/11832] Inject dependencies for phpbb_get_web_root_path (also moving)
Function moved from phpbb_get_web_root_path to filesystem::get_web_root_path PHPBB3-11832
This commit is contained in:
@@ -6,6 +6,9 @@
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
@@ -20,6 +23,72 @@ if (!defined('IN_PHPBB'))
|
||||
*/
|
||||
class phpbb_filesystem
|
||||
{
|
||||
/** @var string */
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $phpbb_root_path
|
||||
*/
|
||||
public function __construct($phpbb_root_path)
|
||||
{
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the phpBB root path
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_phpbb_root_path()
|
||||
{
|
||||
return $this->phpbb_root_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a relative root path from the current URL
|
||||
*
|
||||
* @param Request $symfony_request Symfony Request object
|
||||
* @return string
|
||||
*/
|
||||
function get_web_root_path(Request $symfony_request = null)
|
||||
{
|
||||
if ($symfony_request === null)
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
static $path;
|
||||
if (null !== $path)
|
||||
{
|
||||
return $path;
|
||||
}
|
||||
|
||||
$path_info = $symfony_request->getPathInfo();
|
||||
if ($path_info === '/')
|
||||
{
|
||||
$path = $this->phpbb_root_path;
|
||||
return $path;
|
||||
}
|
||||
|
||||
$path_info = $this->clean_path($path_info);
|
||||
|
||||
// Do not count / at start of path
|
||||
$corrections = substr_count(substr($path_info, 1), '/');
|
||||
|
||||
// When URL Rewriting is enabled, app.php is optional. We have to
|
||||
// correct for it not being there
|
||||
if (strpos($symfony_request->getRequestUri(), $symfony_request->getScriptName()) === false)
|
||||
{
|
||||
$corrections -= 1;
|
||||
}
|
||||
|
||||
$path = $this->phpbb_root_path . str_repeat('../', $corrections);
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Eliminates useless . and .. components from specified path.
|
||||
*
|
||||
|
Reference in New Issue
Block a user