PDF rausgenommen
This commit is contained in:
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\routing\resources_locator;
|
||||
|
||||
class chained_resources_locator implements resources_locator_interface
|
||||
{
|
||||
/**
|
||||
* @var resources_locator_interface[]
|
||||
*/
|
||||
protected $locators;
|
||||
|
||||
/**
|
||||
* Construct method
|
||||
*
|
||||
* @param resources_locator_interface[] $locators Locators
|
||||
*/
|
||||
public function __construct($locators)
|
||||
{
|
||||
$this->locators = $locators;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function locate_resources()
|
||||
{
|
||||
$resources = [];
|
||||
|
||||
foreach ($this->locators as $locator)
|
||||
{
|
||||
$resources = array_merge($resources, $locator->locate_resources());
|
||||
}
|
||||
|
||||
return $resources;
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\routing\resources_locator;
|
||||
|
||||
use phpbb\extension\manager;
|
||||
|
||||
/**
|
||||
* Locates the yaml routing resources located in the default locations
|
||||
*/
|
||||
class default_resources_locator implements resources_locator_interface
|
||||
{
|
||||
/**
|
||||
* phpBB root path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* Name of the current environment
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $environment;
|
||||
|
||||
/**
|
||||
* Extension manager
|
||||
*
|
||||
* @var manager
|
||||
*/
|
||||
protected $extension_manager;
|
||||
|
||||
/**
|
||||
* Construct method
|
||||
*
|
||||
* @param string $phpbb_root_path phpBB root path
|
||||
* @param string $environment Name of the current environment
|
||||
* @param manager $extension_manager Extension manager
|
||||
*/
|
||||
public function __construct($phpbb_root_path, $environment, manager $extension_manager = null)
|
||||
{
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->environment = $environment;
|
||||
$this->extension_manager = $extension_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function locate_resources()
|
||||
{
|
||||
$resources = [['config/' . $this->environment . '/routing/environment.yml', 'yaml']];
|
||||
|
||||
$resources = $this->append_ext_resources($resources);
|
||||
|
||||
return $resources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append extension resources to an array of resouces
|
||||
*
|
||||
* @see resources_locator_interface::locate_resources()
|
||||
*
|
||||
* @param mixed[] $resources List of resources
|
||||
*
|
||||
* @return mixed[] List of resources
|
||||
*/
|
||||
protected function append_ext_resources(array $resources)
|
||||
{
|
||||
if ($this->extension_manager !== null)
|
||||
{
|
||||
foreach ($this->extension_manager->all_enabled(false) as $path)
|
||||
{
|
||||
if (file_exists($this->phpbb_root_path . $path . 'config/' . $this->environment . '/routing/environment.yml'))
|
||||
{
|
||||
$resources[] = [$path . 'config/' . $this->environment . '/routing/environment.yml', 'yaml'];
|
||||
}
|
||||
else if (!is_dir($this->phpbb_root_path . $path . 'config/' . $this->environment))
|
||||
{
|
||||
if (file_exists($this->phpbb_root_path . $path . 'config/default/routing/environment.yml'))
|
||||
{
|
||||
$resources[] = [$path . 'config/default/routing/environment.yml', 'yaml'];
|
||||
}
|
||||
else if (!is_dir($this->phpbb_root_path . $path . 'config/default/routing') && file_exists($this->phpbb_root_path . $path . 'config/routing.yml'))
|
||||
{
|
||||
$resources[] = [$path . 'config/routing.yml', 'yaml'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $resources;
|
||||
}
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\routing\resources_locator;
|
||||
|
||||
use phpbb\filesystem\filesystem_interface;
|
||||
|
||||
/**
|
||||
* Locates the yaml routing resources taking update directories into consideration
|
||||
*/
|
||||
class installer_resources_locator implements resources_locator_interface
|
||||
{
|
||||
/**
|
||||
* phpBB's filesystem handler
|
||||
*
|
||||
* @var filesystem_interface
|
||||
*/
|
||||
protected $filesystem;
|
||||
|
||||
/**
|
||||
* phpBB root path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* Name of the current environment
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $environment;
|
||||
|
||||
/**
|
||||
* Construct method
|
||||
*
|
||||
* @param filesystem_interface $filesystem phpBB's filesystem handler
|
||||
* @param string $phpbb_root_path phpBB root path
|
||||
* @param string $environment Name of the current environment
|
||||
*/
|
||||
public function __construct(filesystem_interface $filesystem, $phpbb_root_path, $environment)
|
||||
{
|
||||
$this->filesystem = $filesystem;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->environment = $environment;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function locate_resources()
|
||||
{
|
||||
if ($this->filesystem->exists($this->phpbb_root_path . 'install/update/new/config'))
|
||||
{
|
||||
$resources = array(
|
||||
array('install/update/new/config/' . $this->environment . '/routing/environment.yml', 'yaml')
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$resources = array(
|
||||
array('config/' . $this->environment . '/routing/environment.yml', 'yaml')
|
||||
);
|
||||
}
|
||||
|
||||
return $resources;
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\routing\resources_locator;
|
||||
|
||||
interface resources_locator_interface
|
||||
{
|
||||
/**
|
||||
* Locates a list of resources used to load the routes
|
||||
*
|
||||
* Each entry of the list can be either the resource or an array composed of 2 elements:
|
||||
* the resource and its type.
|
||||
*
|
||||
* @return mixed[] List of resources
|
||||
*/
|
||||
public function locate_resources();
|
||||
}
|
Reference in New Issue
Block a user