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

RouterModifierTrait   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 40
Duplicated Lines 25 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 1
dl 10
loc 40
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A addRoute() 0 3 1
A addRouteToRoutes() 4 6 2
A _addRoute() 0 7 2
A addRoutesToRoutes() 6 8 3

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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