%PDF- %PDF-
Direktori : /var/www/pjc/vendor/graham-campbell/flysystem/src/Adapter/ |
Current File : /var/www/pjc/vendor/graham-campbell/flysystem/src/Adapter/ConnectionFactory.php |
<?php declare(strict_types=1); /* * This file is part of Laravel Flysystem. * * (c) Graham Campbell <hello@gjcampbell.co.uk> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace GrahamCampbell\Flysystem\Adapter; use InvalidArgumentException; /** * This is the adapter connection factory class. * * @author Graham Campbell <hello@gjcampbell.co.uk> */ class ConnectionFactory { /** * Establish an adapter connection. * * @param array $config * * @throws \InvalidArgumentException * * @return \League\Flysystem\AdapterInterface */ public function make(array $config) { return $this->createConnector($config)->connect($config); } /** * Create a connector instance based on the configuration. * * @param array $config * * @throws \InvalidArgumentException * * @return \GrahamCampbell\Manager\ConnectorInterface */ public function createConnector(array $config) { if (!isset($config['driver'])) { throw new InvalidArgumentException('A driver must be specified.'); } switch ($config['driver']) { case 'awss3': return new Connector\AwsS3Connector(); case 'azure': return new Connector\AzureConnector(); case 'dropbox': return new Connector\DropboxConnector(); case 'ftp': return new Connector\FtpConnector(); case 'gcs': return new Connector\GoogleCloudStorageConnector(); case 'gridfs': return new Connector\GridFSConnector(); case 'local': return new Connector\LocalConnector(); case 'null': return new Connector\NullConnector(); case 'sftp': return new Connector\SftpConnector(); case 'webdav': return new Connector\WebDavConnector(); case 'zip': return new Connector\ZipConnector(); } throw new InvalidArgumentException("Unsupported driver [{$config['driver']}]."); } }