FlyGridfs   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 9
c 1
b 0
f 0
dl 0
loc 25
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A getProvider() 0 15 3
1
<?php
2
3
/**
4
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2015-2018
6
 * @package MW
7
 * @subpackage Filesystem
8
 */
9
10
11
namespace Aimeos\MW\Filesystem;
12
13
use League\Flysystem\Filesystem;
14
use League\Flysystem\GridFS\GridFSAdapter;
0 ignored issues
show
Bug introduced by Aimeos
The type League\Flysystem\GridFS\GridFSAdapter was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
15
16
17
/**
18
 * Implementation of Flysystem GridFS file system adapter
19
 *
20
 * @package MW
21
 * @subpackage Filesystem
22
 */
23
class FlyGridfs extends FlyBase implements Iface, DirIface, MetaIface
24
{
25
	private $fs;
26
27
28
	/**
29
	 * Returns the file system provider
30
	 *
31
	 * @return \League\Flysystem\FilesystemInterface File system provider
32
	 */
33
	protected function getProvider()
34
	{
35
		if( !isset( $this->fs ) )
36
		{
37
			$config = $this->getConfig();
38
39
			if( !isset( $config['dbname'] ) ) {
40
				throw new Exception( sprintf( 'Configuration option "%1$s" missing', 'dbname' ) );
41
			}
42
43
			$client = new \MongoClient();
44
			$this->fs = new Filesystem( new GridFSAdapter( $client->selectDB( $config['dbname'] )->getGridFS() ) );
45
		}
46
47
		return $this->fs;
48
	}
49
}
50