Passed
Branch master (282e34)
by Jean-Christophe
09:14
created

AdminScaffoldController::createMethod()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 3
ccs 0
cts 3
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 8
crap 2

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\scaffolding;
4
5
use Ajax\semantic\html\elements\HtmlButton;
6
use Ubiquity\controllers\Startup;
7
use Ubiquity\utils\http\USession;
8
use Ubiquity\controllers\admin\UbiquityMyAdminBaseController;
9
10
/**
11
 * Ubiquity\scaffolding$AdminScaffoldController
12
 * This class is part of Ubiquity
13
 *
14
 * @author jcheron <[email protected]>
15
 * @version 1.0.0
16
 *
17
 */
18
class AdminScaffoldController extends ScaffoldController {
19
	/**
20
	 *
21
	 * @var UbiquityMyAdminBaseController
22
	 */
23
	private $controller;
24
	private $jquery;
25
26 11
	public function __construct(UbiquityMyAdminBaseController $controller, $jquery) {
27 11
		$this->controller = $controller;
28 11
		$this->jquery = $jquery;
29 11
	}
30
31 2
	protected function getTemplateDir() {
32 2
		return Startup::getFrameworkDir () . "/admin/templates/";
33
	}
34
35 2
	protected function showSimpleMessage($content, $type, $title = null, $icon = "info", $timeout = NULL, $staticName = null) {
36 2
		return $this->controller->showSimpleMessage ( $content, $type, $title, $icon, $timeout, $staticName );
37
	}
38
39
	protected function _addMessageForRouteCreation($path, $jsCallback = "") {
40
		$msgContent = "<br>Created route : <b>" . $path . "</b>";
41
		$msgContent .= "<br>You need to re-init Router cache to apply this update:";
42
		$btReinitCache = new HtmlButton ( "bt-init-cache", "(Re-)Init router cache", "orange" );
43
		$btReinitCache->addIcon ( "refresh" );
44
		$msgContent .= "&nbsp;" . $btReinitCache;
45
		$this->jquery->getOnClick ( "#bt-init-cache", $this->controller->_getFiles ()->getAdminBaseRoute () . "/_refreshCacheControllers", "#messages", [ "attr" => "","hasLoader" => false,"dataType" => "html","jsCallback" => $jsCallback ] );
46
		return $msgContent;
47
	}
48
49 2
	protected function storeControllerNameInSession($controller) {
50 2
		USession::addOrRemoveValueFromArray ( "filtered-controllers", $controller, true );
51 2
	}
52
53
	public static function createClass($controller, $jquery, $template, $classname, $namespace, $uses, $extendsOrImplements, $classContent) {
54
		$self = new AdminScaffoldController ( $controller, $jquery );
55
		return $self->_createClass ( $template, $classname, $namespace, $uses, $extendsOrImplements, $classContent );
56
	}
57
58
	public static function createMethod($controller, $jquery, $access, $name, $parameters, $return, $content, $comment) {
59
		$self = new AdminScaffoldController ( $controller, $jquery );
60
		return $self->_createMethod ( $access, $name, $parameters, $return, $content, $comment );
61
	}
62
}
63
64