Test Failed
Push — master ( e3cf61...f26703 )
by Alain
01:54
created
config/defaults.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -15,35 +15,35 @@
 block discarded – undo
15 15
  * Engine finder default configuration.
16 16
  */
17 17
 $engineFinder = [
18
-    // Class to use for instantiating the EngineFinder implementation.
19
-    Engine\EngineFinder::CLASS_NAME_KEY => Engine\BaseEngineFinder::class,
20
-    // Engine implementations to register with the EngineFinder.
21
-    Engine\EngineFinder::ENGINES_KEY    => [
22
-        'PHPEngine' => Engine\PHPEngine::class,
23
-    ],
24
-    // Null object implementation to use with the EngineFinder.
25
-    Engine\EngineFinder::NULL_OBJECT    => Engine\NullEngine::class,
18
+	// Class to use for instantiating the EngineFinder implementation.
19
+	Engine\EngineFinder::CLASS_NAME_KEY => Engine\BaseEngineFinder::class,
20
+	// Engine implementations to register with the EngineFinder.
21
+	Engine\EngineFinder::ENGINES_KEY    => [
22
+		'PHPEngine' => Engine\PHPEngine::class,
23
+	],
24
+	// Null object implementation to use with the EngineFinder.
25
+	Engine\EngineFinder::NULL_OBJECT    => Engine\NullEngine::class,
26 26
 ];
27 27
 
28 28
 /*
29 29
  * View finder default configuration.
30 30
  */
31 31
 $viewFinder = [
32
-    // Class to use for instantiating the ViewFinder implementation.
33
-    View\ViewFinder::CLASS_NAME_KEY => View\BaseViewFinder::class,
34
-    // View implementations to register with the ViewFinder.
35
-    View\ViewFinder::VIEWS_KEY      => [
36
-        'BaseView' => View\BaseView::class,
37
-    ],
38
-    // Null object implementation to use with the ViewFinder.
39
-    View\ViewFinder::NULL_OBJECT    => View\NullView::class,
32
+	// Class to use for instantiating the ViewFinder implementation.
33
+	View\ViewFinder::CLASS_NAME_KEY => View\BaseViewFinder::class,
34
+	// View implementations to register with the ViewFinder.
35
+	View\ViewFinder::VIEWS_KEY      => [
36
+		'BaseView' => View\BaseView::class,
37
+	],
38
+	// Null object implementation to use with the ViewFinder.
39
+	View\ViewFinder::NULL_OBJECT    => View\NullView::class,
40 40
 ];
41 41
 
42 42
 return [
43
-    'BrightNucleus' => [
44
-        'View' => [
45
-            'EngineFinder' => $engineFinder,
46
-            'ViewFinder'   => $viewFinder,
47
-        ],
48
-    ],
43
+	'BrightNucleus' => [
44
+		'View' => [
45
+			'EngineFinder' => $engineFinder,
46
+			'ViewFinder'   => $viewFinder,
47
+		],
48
+	],
49 49
 ];
Please login to merge, or discard this patch.
src/View/Engine/NullEngine.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -46,7 +46,7 @@
 block discarded – undo
46 46
      * @param string $uri     URI to render.
47 47
      * @param array  $context Context in which to render.
48 48
      *
49
-     * @return callable Rendering callback.
49
+     * @return \Closure Rendering callback.
50 50
      */
51 51
     public function getRenderCallback(string $uri, array $context = []): callable
52 52
     {
Please login to merge, or discard this patch.
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -24,32 +24,32 @@
 block discarded – undo
24 24
 class NullEngine implements Engine, NullFindable
25 25
 {
26 26
 
27
-    /**
28
-     * Check whether the Findable can handle an individual criterion.
29
-     *
30
-     * @since 0.1.0
31
-     *
32
-     * @param mixed $criterion Criterion to check.
33
-     *
34
-     * @return bool Whether the Findable can handle the criterion.
35
-     */
36
-    public function canHandle($criterion): bool
37
-    {
38
-        return true;
39
-    }
27
+	/**
28
+	 * Check whether the Findable can handle an individual criterion.
29
+	 *
30
+	 * @since 0.1.0
31
+	 *
32
+	 * @param mixed $criterion Criterion to check.
33
+	 *
34
+	 * @return bool Whether the Findable can handle the criterion.
35
+	 */
36
+	public function canHandle($criterion): bool
37
+	{
38
+		return true;
39
+	}
40 40
 
41
-    /**
42
-     * Get the rendering callback for a given URI.
43
-     *
44
-     * @since 0.1.0
45
-     *
46
-     * @param string $uri     URI to render.
47
-     * @param array  $context Context in which to render.
48
-     *
49
-     * @return callable Rendering callback.
50
-     */
51
-    public function getRenderCallback(string $uri, array $context = []): callable
52
-    {
53
-        return function () { return ''; };
54
-    }
41
+	/**
42
+	 * Get the rendering callback for a given URI.
43
+	 *
44
+	 * @since 0.1.0
45
+	 *
46
+	 * @param string $uri     URI to render.
47
+	 * @param array  $context Context in which to render.
48
+	 *
49
+	 * @return callable Rendering callback.
50
+	 */
51
+	public function getRenderCallback(string $uri, array $context = []): callable
52
+	{
53
+		return function () { return ''; };
54
+	}
55 55
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -50,6 +50,6 @@
 block discarded – undo
50 50
      */
51 51
     public function getRenderCallback(string $uri, array $context = []): callable
52 52
     {
53
-        return function () { return ''; };
53
+        return function() { return ''; };
54 54
     }
55 55
 }
Please login to merge, or discard this patch.
src/View/View/ViewFinder.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -26,29 +26,29 @@
 block discarded – undo
26 26
 interface ViewFinder extends Finder
27 27
 {
28 28
 
29
-    // Constants to be used for the Config file sections.
30
-    const CLASS_NAME_KEY = 'ClassName';
31
-    const VIEWS_KEY = 'Views';
32
-    const NULL_OBJECT = 'NullObject';
29
+	// Constants to be used for the Config file sections.
30
+	const CLASS_NAME_KEY = 'ClassName';
31
+	const VIEWS_KEY = 'Views';
32
+	const NULL_OBJECT = 'NullObject';
33 33
 
34
-    /**
35
-     * Find a result based on a specific criteria.
36
-     *
37
-     * @since 0.1.0
38
-     *
39
-     * @param array       $criteria Criteria to search for.
40
-     * @param Engine|null $engine   Optional. Engine to use with the view.
41
-     *
42
-     * @return View View that was found.
43
-     */
44
-    public function find(array $criteria, Engine $engine = null): View;
34
+	/**
35
+	 * Find a result based on a specific criteria.
36
+	 *
37
+	 * @since 0.1.0
38
+	 *
39
+	 * @param array       $criteria Criteria to search for.
40
+	 * @param Engine|null $engine   Optional. Engine to use with the view.
41
+	 *
42
+	 * @return View View that was found.
43
+	 */
44
+	public function find(array $criteria, Engine $engine = null): View;
45 45
 
46
-    /**
47
-     * Get the NullObject.
48
-     *
49
-     * @since 0.1.1
50
-     *
51
-     * @return NullView NullObject for the current Finder.
52
-     */
53
-    public function getNullObject(): NullView;
46
+	/**
47
+	 * Get the NullObject.
48
+	 *
49
+	 * @since 0.1.1
50
+	 *
51
+	 * @return NullView NullObject for the current Finder.
52
+	 */
53
+	public function getNullObject(): NullView;
54 54
 }
Please login to merge, or discard this patch.
src/View/View/BaseViewFinder.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -27,56 +27,56 @@
 block discarded – undo
27 27
 class BaseViewFinder extends AbstractFinder implements ViewFinder
28 28
 {
29 29
 
30
-    /**
31
-     * Find a result based on a specific criteria.
32
-     *
33
-     * @since 0.1.0
34
-     *
35
-     * @param array       $criteria Criteria to search for.
36
-     * @param Engine|null $engine   Optional. Engine to use with the view.
37
-     *
38
-     * @return View View that was found.
39
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
40
-     */
41
-    public function find(array $criteria, Engine $engine = null): View
42
-    {
43
-        $uri = $criteria[0];
30
+	/**
31
+	 * Find a result based on a specific criteria.
32
+	 *
33
+	 * @since 0.1.0
34
+	 *
35
+	 * @param array       $criteria Criteria to search for.
36
+	 * @param Engine|null $engine   Optional. Engine to use with the view.
37
+	 *
38
+	 * @return View View that was found.
39
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
40
+	 */
41
+	public function find(array $criteria, Engine $engine = null): View
42
+	{
43
+		$uri = $criteria[0];
44 44
 
45
-        $views = $this->initializeFindables([$uri, $engine]);
45
+		$views = $this->initializeFindables([$uri, $engine]);
46 46
 
47
-        foreach ($criteria as $entry) {
48
-            foreach ($views as $viewObject) {
49
-                if ($viewObject->canHandle($entry)) {
50
-                    return $viewObject;
51
-                }
52
-            }
53
-        }
47
+		foreach ($criteria as $entry) {
48
+			foreach ($views as $viewObject) {
49
+				if ($viewObject->canHandle($entry)) {
50
+					return $viewObject;
51
+				}
52
+			}
53
+		}
54 54
 
55
-        return $this->getNullObject();
56
-    }
55
+		return $this->getNullObject();
56
+	}
57 57
 
58
-    /**
59
-     * Get the config key for the Findables definitions.
60
-     *
61
-     * @since 0.1.0
62
-     *
63
-     * @return string Config key use to define the Findables.
64
-     */
65
-    protected function getFindablesConfigKey(): string
66
-    {
67
-        return 'Views';
68
-    }
58
+	/**
59
+	 * Get the config key for the Findables definitions.
60
+	 *
61
+	 * @since 0.1.0
62
+	 *
63
+	 * @return string Config key use to define the Findables.
64
+	 */
65
+	protected function getFindablesConfigKey(): string
66
+	{
67
+		return 'Views';
68
+	}
69 69
 
70
-    /**
71
-     * Get the NullObject.
72
-     *
73
-     * @since 0.1.1
74
-     *
75
-     * @return NullView NullObject for the current Finder.
76
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
77
-     */
78
-    public function getNullObject(): NullView
79
-    {
80
-        return parent::getNullObject();
81
-    }
70
+	/**
71
+	 * Get the NullObject.
72
+	 *
73
+	 * @since 0.1.1
74
+	 *
75
+	 * @return NullView NullObject for the current Finder.
76
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
77
+	 */
78
+	public function getNullObject(): NullView
79
+	{
80
+		return parent::getNullObject();
81
+	}
82 82
 }
Please login to merge, or discard this patch.
src/View/Engine/EngineFinder.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -23,17 +23,17 @@
 block discarded – undo
23 23
  */
24 24
 interface EngineFinder extends Finder
25 25
 {
26
-    // Constants to be used for the Config file sections.
27
-    const CLASS_NAME_KEY = 'ClassName';
28
-    const ENGINES_KEY = 'Engines';
29
-    const NULL_OBJECT = 'NullObject';
26
+	// Constants to be used for the Config file sections.
27
+	const CLASS_NAME_KEY = 'ClassName';
28
+	const ENGINES_KEY = 'Engines';
29
+	const NULL_OBJECT = 'NullObject';
30 30
 
31
-    /**
32
-     * Get the NullObject.
33
-     *
34
-     * @since 0.1.1
35
-     *
36
-     * @return NullEngine NullObject for the current Finder.
37
-     */
38
-    public function getNullObject(): NullEngine;
31
+	/**
32
+	 * Get the NullObject.
33
+	 *
34
+	 * @since 0.1.1
35
+	 *
36
+	 * @return NullEngine NullObject for the current Finder.
37
+	 */
38
+	public function getNullObject(): NullEngine;
39 39
 }
Please login to merge, or discard this patch.
src/View/Engine/BaseEngineFinder.php 1 patch
Indentation   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -25,53 +25,53 @@
 block discarded – undo
25 25
 class BaseEngineFinder extends AbstractFinder implements EngineFinder
26 26
 {
27 27
 
28
-    /**
29
-     * Find a result based on a specific criteria.
30
-     *
31
-     * @since 0.1.0
32
-     *
33
-     * @param array $criteria Criteria to search for.
34
-     *
35
-     * @return Engine Result of the search.
36
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
37
-     */
38
-    public function find(array $criteria): Engine
39
-    {
40
-        $this->findables = $this->initializeFindables();
28
+	/**
29
+	 * Find a result based on a specific criteria.
30
+	 *
31
+	 * @since 0.1.0
32
+	 *
33
+	 * @param array $criteria Criteria to search for.
34
+	 *
35
+	 * @return Engine Result of the search.
36
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
37
+	 */
38
+	public function find(array $criteria): Engine
39
+	{
40
+		$this->findables = $this->initializeFindables();
41 41
 
42
-        foreach ($criteria as $entry) {
43
-            foreach ($this->findables as $engine) {
44
-                if ($engine->canHandle($entry)) {
45
-                    return $engine;
46
-                }
47
-            }
48
-        }
42
+		foreach ($criteria as $entry) {
43
+			foreach ($this->findables as $engine) {
44
+				if ($engine->canHandle($entry)) {
45
+					return $engine;
46
+				}
47
+			}
48
+		}
49 49
 
50
-        return $this->getNullObject();
51
-    }
50
+		return $this->getNullObject();
51
+	}
52 52
 
53
-    /**
54
-     * Get the config key for the Findables definitions.
55
-     *
56
-     * @since 0.1.0
57
-     *
58
-     * @return string Config key use to define the Findables.
59
-     */
60
-    protected function getFindablesConfigKey(): string
61
-    {
62
-        return 'Engines';
63
-    }
53
+	/**
54
+	 * Get the config key for the Findables definitions.
55
+	 *
56
+	 * @since 0.1.0
57
+	 *
58
+	 * @return string Config key use to define the Findables.
59
+	 */
60
+	protected function getFindablesConfigKey(): string
61
+	{
62
+		return 'Engines';
63
+	}
64 64
 
65
-    /**
66
-     * Get the NullObject.
67
-     *
68
-     * @since 0.1.1
69
-     *
70
-     * @return NullEngine NullObject for the current Finder.
71
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
72
-     */
73
-    public function getNullObject(): NullEngine
74
-    {
75
-        return parent::getNullObject();
76
-    }
65
+	/**
66
+	 * Get the NullObject.
67
+	 *
68
+	 * @since 0.1.1
69
+	 *
70
+	 * @return NullEngine NullObject for the current Finder.
71
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
72
+	 */
73
+	public function getNullObject(): NullEngine
74
+	{
75
+		return parent::getNullObject();
76
+	}
77 77
 }
Please login to merge, or discard this patch.
src/View/Support/Finder.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -22,23 +22,23 @@
 block discarded – undo
22 22
 interface Finder
23 23
 {
24 24
 
25
-    /**
26
-     * Find a result based on a specific criteria.
27
-     *
28
-     * @since 0.1.0
29
-     *
30
-     * @param array $criteria Criteria to search for.
31
-     *
32
-     * @return mixed Result of the search.
33
-     */
34
-    public function find(array $criteria);
25
+	/**
26
+	 * Find a result based on a specific criteria.
27
+	 *
28
+	 * @since 0.1.0
29
+	 *
30
+	 * @param array $criteria Criteria to search for.
31
+	 *
32
+	 * @return mixed Result of the search.
33
+	 */
34
+	public function find(array $criteria);
35 35
 
36
-    /**
37
-     * Get the NullObject.
38
-     *
39
-     * @since 0.1.1
40
-     *
41
-     * @return NullFindable NullObject for the current Finder.
42
-     */
43
-    public function getNullObject();
36
+	/**
37
+	 * Get the NullObject.
38
+	 *
39
+	 * @since 0.1.1
40
+	 *
41
+	 * @return NullFindable NullObject for the current Finder.
42
+	 */
43
+	public function getNullObject();
44 44
 }
Please login to merge, or discard this patch.
src/View/Support/URIHelper.php 2 patches
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -22,58 +22,58 @@
 block discarded – undo
22 22
 class URIHelper
23 23
 {
24 24
 
25
-    /**
26
-     * Check whether a given URI has a specific extension.
27
-     *
28
-     * @since 0.1.3
29
-     *
30
-     * @param string $uri       URI to check the extension of.
31
-     * @param string $extension Extension to check for.
32
-     *
33
-     * @return bool
34
-     */
35
-    public static function hasExtension(string $uri, string $extension): bool
36
-    {
37
-        $extension       = '.' . ltrim($extension, '.');
38
-        $uriLength       = mb_strlen($uri);
39
-        $extensionLength = mb_strlen($extension);
40
-        if ($extensionLength > $uriLength) {
41
-            return false;
42
-        }
25
+	/**
26
+	 * Check whether a given URI has a specific extension.
27
+	 *
28
+	 * @since 0.1.3
29
+	 *
30
+	 * @param string $uri       URI to check the extension of.
31
+	 * @param string $extension Extension to check for.
32
+	 *
33
+	 * @return bool
34
+	 */
35
+	public static function hasExtension(string $uri, string $extension): bool
36
+	{
37
+		$extension       = '.' . ltrim($extension, '.');
38
+		$uriLength       = mb_strlen($uri);
39
+		$extensionLength = mb_strlen($extension);
40
+		if ($extensionLength > $uriLength) {
41
+			return false;
42
+		}
43 43
 
44
-        return substr_compare($uri, $extension, $uriLength - $extensionLength, $extensionLength) === 0;
45
-    }
44
+		return substr_compare($uri, $extension, $uriLength - $extensionLength, $extensionLength) === 0;
45
+	}
46 46
 
47
-    /**
48
-     * Check whether a given URI contains an extension and return it.
49
-     *
50
-     * @param string $uri URI to check.
51
-     * @return string Extension that was found, empty string if none found.
52
-     */
53
-    public static function containsExtension(string $uri): string
54
-    {
55
-        $pathParts     = explode('/', $uri);
56
-        $filename      = array_pop($pathParts);
57
-        $filenameParts = explode('.', $filename);
47
+	/**
48
+	 * Check whether a given URI contains an extension and return it.
49
+	 *
50
+	 * @param string $uri URI to check.
51
+	 * @return string Extension that was found, empty string if none found.
52
+	 */
53
+	public static function containsExtension(string $uri): string
54
+	{
55
+		$pathParts     = explode('/', $uri);
56
+		$filename      = array_pop($pathParts);
57
+		$filenameParts = explode('.', $filename);
58 58
 
59
-        if (count($filenameParts) > 1) {
60
-            return array_pop($filenameParts);
61
-        }
59
+		if (count($filenameParts) > 1) {
60
+			return array_pop($filenameParts);
61
+		}
62 62
 
63
-        return '';
64
-    }
63
+		return '';
64
+	}
65 65
 
66
-    /**
67
-     * Get the filename for an URI.
68
-     *
69
-     * @since 0.1.3
70
-     *
71
-     * @param string $uri URI to get the filename from.
72
-     *
73
-     * @return string Filename without path.
74
-     */
75
-    public static function getFilename(string $uri): String
76
-    {
77
-        return basename($uri);
78
-    }
66
+	/**
67
+	 * Get the filename for an URI.
68
+	 *
69
+	 * @since 0.1.3
70
+	 *
71
+	 * @param string $uri URI to get the filename from.
72
+	 *
73
+	 * @return string Filename without path.
74
+	 */
75
+	public static function getFilename(string $uri): String
76
+	{
77
+		return basename($uri);
78
+	}
79 79
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -34,7 +34,7 @@
 block discarded – undo
34 34
      */
35 35
     public static function hasExtension(string $uri, string $extension): bool
36 36
     {
37
-        $extension       = '.' . ltrim($extension, '.');
37
+        $extension       = '.'.ltrim($extension, '.');
38 38
         $uriLength       = mb_strlen($uri);
39 39
         $extensionLength = mb_strlen($extension);
40 40
         if ($extensionLength > $uriLength) {
Please login to merge, or discard this patch.
src/View/Support/AbstractFinder.php 2 patches
Indentation   +212 added lines, -212 removed lines patch added patch discarded remove patch
@@ -27,216 +27,216 @@
 block discarded – undo
27 27
 abstract class AbstractFinder implements Finder
28 28
 {
29 29
 
30
-    use ConfigTrait;
31
-
32
-    /**
33
-     * Findable collection that the Finder can iterate through to find a match.
34
-     *
35
-     * @since 0.1.0
36
-     *
37
-     * @var Findables
38
-     */
39
-    protected $findables;
40
-
41
-    /**
42
-     * NullObject that is returned if the Finder could not find a match.
43
-     *
44
-     * @since 0.1.0
45
-     *
46
-     * @var NullFindable
47
-     */
48
-    protected $nullObject;
49
-
50
-    /**
51
-     * Instantiate an AbstractFinder object.
52
-     *
53
-     * @since 0.1.0
54
-     *
55
-     * @param ConfigInterface $config Configuration of the AbstractFinder.
56
-     *
57
-     * @throws FailedToProcessConfigException If the config could not be processed.
58
-     */
59
-    public function __construct(ConfigInterface $config)
60
-    {
61
-        $this->processConfig($config);
62
-        $this->findables = new Findables();
63
-        $this->registerFindables($this->config);
64
-        $this->registerNullObject($this->config);
65
-    }
66
-
67
-    /**
68
-     * Register the Findables defined in the given configuration.
69
-     *
70
-     * @since 0.1.0
71
-     *
72
-     * @param ConfigInterface $config Configuration to register the Findables from.
73
-     */
74
-    public function registerFindables(ConfigInterface $config)
75
-    {
76
-        $findables = (array) $config->getKey($this->getFindablesConfigKey());
77
-        foreach ($findables as $findableKey => $findableObject) {
78
-            $this->findables->set($findableKey, $findableObject);
79
-        }
80
-    }
81
-
82
-    /**
83
-     * Register the NullObject defined in the given configuration.
84
-     *
85
-     * @since 0.1.0
86
-     *
87
-     * @param ConfigInterface $config Configuration to register the NullObject from.
88
-     */
89
-    public function registerNullObject(ConfigInterface $config)
90
-    {
91
-        $this->nullObject = $config->getKey($this->getNullObjectConfigKey());
92
-    }
93
-
94
-    /**
95
-     * Get the NullObject.
96
-     *
97
-     * @since 0.1.1
98
-     *
99
-     * @return NullFindable NullObject for the current Finder.
100
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
101
-     */
102
-    public function getNullObject()
103
-    {
104
-        $this->initializeNullObject();
105
-
106
-        return $this->nullObject;
107
-    }
108
-
109
-    /**
110
-     * Get the config key for the Findables definitions.
111
-     *
112
-     * @since 0.1.0
113
-     *
114
-     * @return string Config key use to define the Findables.
115
-     */
116
-    protected function getFindablesConfigKey(): string
117
-    {
118
-        return 'Findables';
119
-    }
120
-
121
-    /**
122
-     * Get the config key for the NullObject definitions.
123
-     *
124
-     * @since 0.1.0
125
-     *
126
-     * @return string Config key use to define the NullObject.
127
-     */
128
-    protected function getNullObjectConfigKey(): string
129
-    {
130
-        return 'NullObject';
131
-    }
132
-
133
-    /**
134
-     * Initialize the NullObject.
135
-     *
136
-     * @since 0.1.1
137
-     *
138
-     * @param mixed $arguments Optional. Arguments to use.
139
-     *
140
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
141
-     */
142
-    protected function initializeNullObject($arguments = null)
143
-    {
144
-        $this->nullObject = $this->maybeInstantiateFindable($this->nullObject, $arguments);
145
-    }
146
-
147
-    /**
148
-     * Initialize the Findables that can be iterated.
149
-     *
150
-     * @param mixed $arguments Optional. Arguments to use.
151
-     *
152
-     * @since 0.1.0
153
-     *
154
-     * @return Findables Collection of Findables.
155
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
156
-     */
157
-    protected function initializeFindables($arguments = null): Findables
158
-    {
159
-        return $this->findables->map(function ($findable) use ($arguments) {
160
-            return $this->initializeFindable($findable, $arguments);
161
-        });
162
-    }
163
-
164
-    /**
165
-     * Initialize a single findable by instantiating class name strings and calling closures.
166
-     *
167
-     * @since 0.1.0
168
-     *
169
-     * @param mixed $findable  Findable to instantiate.
170
-     * @param mixed $arguments Optional. Arguments to use.
171
-     *
172
-     * @return Findable Instantiated findable.
173
-     * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
174
-     */
175
-    protected function initializeFindable($findable, $arguments = null): Findable
176
-    {
177
-        return $this->maybeInstantiateFindable($findable, $arguments);
178
-    }
179
-
180
-    /**
181
-     * Maybe instantiate a Findable if it is not yet an object.
182
-     *
183
-     * @since 0.1.1
184
-     *
185
-     * @param mixed $findable  Findable to instantiate.
186
-     * @param mixed $arguments Optional. Arguments to use.
187
-     *
188
-     * @return Findable Instantiated findable.
189
-     * @throws FailedToInstantiateFindable If the findable could not be instantiated.
190
-     */
191
-    protected function maybeInstantiateFindable($findable, $arguments = null): Findable
192
-    {
193
-        if (is_string($findable)) {
194
-            $findable = $this->instantiateFindableFromString($findable, $arguments);
195
-        }
196
-
197
-        if (is_callable($findable)) {
198
-            $findable = $this->instantiateFindableFromCallable($findable, $arguments);
199
-        }
200
-
201
-        if (! $findable instanceof Findable) {
202
-            throw new FailedToInstantiateFindable(
203
-                sprintf(
204
-                    _('Could not instantiate Findable "%s".'),
205
-                    serialize($findable)
206
-                )
207
-            );
208
-        }
209
-
210
-        return $findable;
211
-    }
212
-
213
-    /**
214
-     * Instantiate a Findable from a string.
215
-     *
216
-     * @since 0.1.1
217
-     *
218
-     * @param string $string    String to use for instantiation.
219
-     * @param mixed  $arguments Optional. Arguments to use for instantiation.
220
-     *
221
-     * @return Findable Instantiated Findable.
222
-     */
223
-    protected function instantiateFindableFromString(string $string, $arguments = []): Findable
224
-    {
225
-        return new $string(...(array)$arguments);
226
-    }
227
-
228
-    /**
229
-     * Instantiate a Findable from a callable.
230
-     *
231
-     * @since 0.1.1
232
-     *
233
-     * @param callable $callable  Callable to use for instantiation.
234
-     * @param mixed    $arguments Optional. Arguments to use for instantiation.
235
-     *
236
-     * @return Findable Instantiated Findable.
237
-     */
238
-    protected function instantiateFindableFromCallable(callable $callable, $arguments = []): Findable
239
-    {
240
-        return $callable(...(array)$arguments);
241
-    }
30
+	use ConfigTrait;
31
+
32
+	/**
33
+	 * Findable collection that the Finder can iterate through to find a match.
34
+	 *
35
+	 * @since 0.1.0
36
+	 *
37
+	 * @var Findables
38
+	 */
39
+	protected $findables;
40
+
41
+	/**
42
+	 * NullObject that is returned if the Finder could not find a match.
43
+	 *
44
+	 * @since 0.1.0
45
+	 *
46
+	 * @var NullFindable
47
+	 */
48
+	protected $nullObject;
49
+
50
+	/**
51
+	 * Instantiate an AbstractFinder object.
52
+	 *
53
+	 * @since 0.1.0
54
+	 *
55
+	 * @param ConfigInterface $config Configuration of the AbstractFinder.
56
+	 *
57
+	 * @throws FailedToProcessConfigException If the config could not be processed.
58
+	 */
59
+	public function __construct(ConfigInterface $config)
60
+	{
61
+		$this->processConfig($config);
62
+		$this->findables = new Findables();
63
+		$this->registerFindables($this->config);
64
+		$this->registerNullObject($this->config);
65
+	}
66
+
67
+	/**
68
+	 * Register the Findables defined in the given configuration.
69
+	 *
70
+	 * @since 0.1.0
71
+	 *
72
+	 * @param ConfigInterface $config Configuration to register the Findables from.
73
+	 */
74
+	public function registerFindables(ConfigInterface $config)
75
+	{
76
+		$findables = (array) $config->getKey($this->getFindablesConfigKey());
77
+		foreach ($findables as $findableKey => $findableObject) {
78
+			$this->findables->set($findableKey, $findableObject);
79
+		}
80
+	}
81
+
82
+	/**
83
+	 * Register the NullObject defined in the given configuration.
84
+	 *
85
+	 * @since 0.1.0
86
+	 *
87
+	 * @param ConfigInterface $config Configuration to register the NullObject from.
88
+	 */
89
+	public function registerNullObject(ConfigInterface $config)
90
+	{
91
+		$this->nullObject = $config->getKey($this->getNullObjectConfigKey());
92
+	}
93
+
94
+	/**
95
+	 * Get the NullObject.
96
+	 *
97
+	 * @since 0.1.1
98
+	 *
99
+	 * @return NullFindable NullObject for the current Finder.
100
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
101
+	 */
102
+	public function getNullObject()
103
+	{
104
+		$this->initializeNullObject();
105
+
106
+		return $this->nullObject;
107
+	}
108
+
109
+	/**
110
+	 * Get the config key for the Findables definitions.
111
+	 *
112
+	 * @since 0.1.0
113
+	 *
114
+	 * @return string Config key use to define the Findables.
115
+	 */
116
+	protected function getFindablesConfigKey(): string
117
+	{
118
+		return 'Findables';
119
+	}
120
+
121
+	/**
122
+	 * Get the config key for the NullObject definitions.
123
+	 *
124
+	 * @since 0.1.0
125
+	 *
126
+	 * @return string Config key use to define the NullObject.
127
+	 */
128
+	protected function getNullObjectConfigKey(): string
129
+	{
130
+		return 'NullObject';
131
+	}
132
+
133
+	/**
134
+	 * Initialize the NullObject.
135
+	 *
136
+	 * @since 0.1.1
137
+	 *
138
+	 * @param mixed $arguments Optional. Arguments to use.
139
+	 *
140
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
141
+	 */
142
+	protected function initializeNullObject($arguments = null)
143
+	{
144
+		$this->nullObject = $this->maybeInstantiateFindable($this->nullObject, $arguments);
145
+	}
146
+
147
+	/**
148
+	 * Initialize the Findables that can be iterated.
149
+	 *
150
+	 * @param mixed $arguments Optional. Arguments to use.
151
+	 *
152
+	 * @since 0.1.0
153
+	 *
154
+	 * @return Findables Collection of Findables.
155
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
156
+	 */
157
+	protected function initializeFindables($arguments = null): Findables
158
+	{
159
+		return $this->findables->map(function ($findable) use ($arguments) {
160
+			return $this->initializeFindable($findable, $arguments);
161
+		});
162
+	}
163
+
164
+	/**
165
+	 * Initialize a single findable by instantiating class name strings and calling closures.
166
+	 *
167
+	 * @since 0.1.0
168
+	 *
169
+	 * @param mixed $findable  Findable to instantiate.
170
+	 * @param mixed $arguments Optional. Arguments to use.
171
+	 *
172
+	 * @return Findable Instantiated findable.
173
+	 * @throws FailedToInstantiateFindable If the Findable could not be instantiated.
174
+	 */
175
+	protected function initializeFindable($findable, $arguments = null): Findable
176
+	{
177
+		return $this->maybeInstantiateFindable($findable, $arguments);
178
+	}
179
+
180
+	/**
181
+	 * Maybe instantiate a Findable if it is not yet an object.
182
+	 *
183
+	 * @since 0.1.1
184
+	 *
185
+	 * @param mixed $findable  Findable to instantiate.
186
+	 * @param mixed $arguments Optional. Arguments to use.
187
+	 *
188
+	 * @return Findable Instantiated findable.
189
+	 * @throws FailedToInstantiateFindable If the findable could not be instantiated.
190
+	 */
191
+	protected function maybeInstantiateFindable($findable, $arguments = null): Findable
192
+	{
193
+		if (is_string($findable)) {
194
+			$findable = $this->instantiateFindableFromString($findable, $arguments);
195
+		}
196
+
197
+		if (is_callable($findable)) {
198
+			$findable = $this->instantiateFindableFromCallable($findable, $arguments);
199
+		}
200
+
201
+		if (! $findable instanceof Findable) {
202
+			throw new FailedToInstantiateFindable(
203
+				sprintf(
204
+					_('Could not instantiate Findable "%s".'),
205
+					serialize($findable)
206
+				)
207
+			);
208
+		}
209
+
210
+		return $findable;
211
+	}
212
+
213
+	/**
214
+	 * Instantiate a Findable from a string.
215
+	 *
216
+	 * @since 0.1.1
217
+	 *
218
+	 * @param string $string    String to use for instantiation.
219
+	 * @param mixed  $arguments Optional. Arguments to use for instantiation.
220
+	 *
221
+	 * @return Findable Instantiated Findable.
222
+	 */
223
+	protected function instantiateFindableFromString(string $string, $arguments = []): Findable
224
+	{
225
+		return new $string(...(array)$arguments);
226
+	}
227
+
228
+	/**
229
+	 * Instantiate a Findable from a callable.
230
+	 *
231
+	 * @since 0.1.1
232
+	 *
233
+	 * @param callable $callable  Callable to use for instantiation.
234
+	 * @param mixed    $arguments Optional. Arguments to use for instantiation.
235
+	 *
236
+	 * @return Findable Instantiated Findable.
237
+	 */
238
+	protected function instantiateFindableFromCallable(callable $callable, $arguments = []): Findable
239
+	{
240
+		return $callable(...(array)$arguments);
241
+	}
242 242
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
      */
157 157
     protected function initializeFindables($arguments = null): Findables
158 158
     {
159
-        return $this->findables->map(function ($findable) use ($arguments) {
159
+        return $this->findables->map(function($findable) use ($arguments) {
160 160
             return $this->initializeFindable($findable, $arguments);
161 161
         });
162 162
     }
@@ -198,7 +198,7 @@  discard block
 block discarded – undo
198 198
             $findable = $this->instantiateFindableFromCallable($findable, $arguments);
199 199
         }
200 200
 
201
-        if (! $findable instanceof Findable) {
201
+        if ( ! $findable instanceof Findable) {
202 202
             throw new FailedToInstantiateFindable(
203 203
                 sprintf(
204 204
                     _('Could not instantiate Findable "%s".'),
@@ -222,7 +222,7 @@  discard block
 block discarded – undo
222 222
      */
223 223
     protected function instantiateFindableFromString(string $string, $arguments = []): Findable
224 224
     {
225
-        return new $string(...(array)$arguments);
225
+        return new $string(...(array) $arguments);
226 226
     }
227 227
 
228 228
     /**
@@ -237,6 +237,6 @@  discard block
 block discarded – undo
237 237
      */
238 238
     protected function instantiateFindableFromCallable(callable $callable, $arguments = []): Findable
239 239
     {
240
-        return $callable(...(array)$arguments);
240
+        return $callable(...(array) $arguments);
241 241
     }
242 242
 }
Please login to merge, or discard this patch.