mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-20 10:18:54 +00:00
[ticket/13904] Add initial factory for handling file classes
PHPBB3-13904
This commit is contained in:
parent
dccc0877c1
commit
b971f20a5d
1 changed files with 79 additions and 0 deletions
79
phpBB/phpbb/files/factory.php
Normal file
79
phpBB/phpbb/files/factory.php
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
<?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\files;
|
||||||
|
|
||||||
|
class factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var \Symfony\Component\DependencyInjection\ContainerInterface
|
||||||
|
*/
|
||||||
|
private $container;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param \Symfony\Component\DependencyInjection\ContainerInterface $container
|
||||||
|
*/
|
||||||
|
public function __construct(\Symfony\Component\DependencyInjection\ContainerInterface $container)
|
||||||
|
{
|
||||||
|
$this->container = $container;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get files service
|
||||||
|
*
|
||||||
|
* @param string $name Service name
|
||||||
|
*
|
||||||
|
* @return object|false Requested service or false if service could not be
|
||||||
|
* found by the container
|
||||||
|
*/
|
||||||
|
public function get($name)
|
||||||
|
{
|
||||||
|
$service = false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$service = $this->container->get($name);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
return $service;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Magic function for handling get calls, e.g. get_fileupload() or
|
||||||
|
* get_filespec() and turning them into call for files. services like
|
||||||
|
* files.fileupload.
|
||||||
|
*
|
||||||
|
* @param string $name Name of called function
|
||||||
|
* @param mixed $arguments Possible supplied arguments
|
||||||
|
*
|
||||||
|
* @return object|false Requested service or false if service could not be
|
||||||
|
* found by the container
|
||||||
|
*/
|
||||||
|
public function __call($name, $arguments)
|
||||||
|
{
|
||||||
|
if (substr($name, 0, 4) === 'get_')
|
||||||
|
{
|
||||||
|
return $this->get('files.' . substr($name, 4));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue