b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / magento / framework / Filesystem /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/magento/framework/Filesystem/DriverPool.php
Size2.07 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified07-Jan-2021 21:08
Last accessed22-Aug-2025 21:44
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Framework\Filesystem;

/**
* A pool of stream wrappers
*/
class DriverPool
{
/**#@+
* Available driver types
*/
const FILE = 'file';
const HTTP = 'http';
const HTTPS = 'https';
const ZLIB = 'compress.zlib';
/**#@- */

/**#@- */
protected $types = [
self::FILE => \Magento\Framework\Filesystem\Driver\File::class,
self::HTTP => \Magento\Framework\Filesystem\Driver\Http::class,
self::HTTPS => \Magento\Framework\Filesystem\Driver\Https::class,
self::ZLIB => \Magento\Framework\Filesystem\Driver\Zlib::class,
];

/**
* The pool
*
* @var DriverInterface[]
*/
private $pool = [];

/**
* Obtain extra types in constructor
*
* @param array $extraTypes
* @throws \InvalidArgumentException
*/
public function __construct($extraTypes = [])
{
foreach ($extraTypes as $code => $typeOrObject) {
if (is_object($typeOrObject)) {
$type = get_class($typeOrObject);
$object = $typeOrObject;
} else {
$type = $typeOrObject;
$object = false;
}
if (!is_subclass_of($type, \Magento\Framework\Filesystem\DriverInterface::class)) {
throw new \InvalidArgumentException("The specified type '{$type}' does not implement DriverInterface.");
}
$this->types[$code] = $type;
if ($object) {
$this->pool[$code] = $typeOrObject;
}
}
}

/**
* Gets a driver instance by code
*
* @param string $code
* @return DriverInterface
*/
public function getDriver($code)
{
if (!isset($this->types[$code])) {
$code = self::FILE;
}
if (!isset($this->pool[$code])) {
$class = $this->types[$code];
$this->pool[$code] = new $class();
}
return $this->pool[$code];
}
}