mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-20 02:08:51 +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