Completed
Push — master ( 0648f2...737095 )
by Jean-Christophe
01:38
created

RouterModifierTrait::addRouteToRoutes()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6

Duplication

Lines 4
Ratio 66.67 %

Importance

Changes 0
Metric Value
dl 4
loc 6
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 9

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace Ubiquity\controllers\traits;
4
5
use Ubiquity\cache\parser\ControllerParser;
6
7
trait RouterModifierTrait {
8
	/**
9
	 *
10
	 * @param string $path
11
	 * @param string $controller
12
	 * @param string $action
13
	 * @param array|null $methods
14
	 * @param string $name
15
	 * @param boolean $cache
16
	 * @param int $duration
17
	 * @param array $requirements
18
	 */
19
	public static function addRoute($path, $controller, $action = "index", $methods = null, $name = "", $cache = false, $duration = null, $requirements = []) {
20
		self::addRouteToRoutes ( self::$routes, $path, $controller, $action, $methods, $name, $cache, $duration, $requirements );
21
	}
22
	
23
	public static function addRouteToRoutes(&$routesArray, $path, $controller, $action = "index", $methods = null, $name = "", $cache = false, $duration = null, $requirements = []) {
24 View Code Duplication
		if (\class_exists ( $controller )) {
25
			$method = new \ReflectionMethod ( $controller, $action );
26
			self::_addRoute($method, $routesArray, $path, $controller,$action,$methods,$name,$cache,$duration,$requirements);
27
		}
28
	}
29
	
30
	private static function _addRoute($method,&$routesArray, $path, $controller, $action = "index", $methods = null, $name = "", $cache = false, $duration = null, $requirements = []){
31
		$result=[];
32
		ControllerParser::parseRouteArray ( $result, $controller, [ "path" => $path,"methods" => $methods,"name" => $name,"cache" => $cache,"duration" => $duration,"requirements" => $requirements ], $method, $action );
33
		foreach ( $result as $k => $v ) {
34
			$routesArray [$k] = $v;
35
		}
36
	}
37
	
38
	public static function addRoutesToRoutes(&$routesArray, $paths, $controller, $action = "index", $methods = null, $name = "", $cache = false, $duration = null, $requirements = []) {
39 View Code Duplication
		if (\class_exists ( $controller )) {
40
			$method = new \ReflectionMethod ( $controller, $action );
41
			foreach ($paths as $path){
42
				self::_addRoute($method, $routesArray, $path, $controller,$action,$methods,$name,$cache,$duration,$requirements);
43
			}
44
		}
45
	}
46
}
47
48