Browse Source

Add addHelpers().

mscherer 6 years ago
parent
commit
05739ab54d

+ 14 - 5
src/Controller/Component/CommonComponent.php

@@ -134,14 +134,23 @@ class CommonComponent extends Component {
 
 
 	/**
 	/**
 	 * Add helper just in time (inside actions - only when needed)
 	 * Add helper just in time (inside actions - only when needed)
-	 * aware of plugins
 	 *
 	 *
-	 * @deprecated In 3.x, but kept for easier migration for now. Will be removed in the future.
-	 * @param mixed $helpers (single string or multiple array)
+	 * @deprecated In 3.x. Use addHelpers() instead.
+	 * @param string|array $helpers (single string or multiple array)
 	 * @return void
 	 * @return void
 	 */
 	 */
-	public function loadHelper($helpers = []) {
-		$this->Controller->viewBuilder()->setHelpers((array)$helpers, true);
+	public function loadHelper($helpers) {
+		$this->addHelpers((array)$helpers);
+	}
+
+	/**
+	 * Adds helpers just in time (inside actions - only when needed).
+	 *
+	 * @param array $helpers
+	 * @return void
+	 */
+	public function addHelpers(array $helpers) {
+		$this->Controller->viewBuilder()->setHelpers($helpers, true);
 	}
 	}
 
 
 	/**
 	/**

+ 12 - 0
tests/TestCase/Controller/Component/CommonComponentTest.php

@@ -257,6 +257,18 @@ class CommonComponentTest extends TestCase {
 	/**
 	/**
 	 * @return void
 	 * @return void
 	 */
 	 */
+	public function testAddHelpers() {
+		$this->Controller->Common->addHelpers(['Tester']);
+		$helpers = $this->Controller->viewBuilder()->getHelpers();
+		$this->assertEquals(['Tester'], $helpers);
+		$this->Controller->Common->addHelpers(['Tester123']);
+		$helpers = $this->Controller->viewBuilder()->getHelpers();
+		$this->assertEquals(['Tester', 'Tester123'], $helpers);
+	}
+
+	/**
+	 * @return void
+	 */
 	public function testDefaultUrlParams() {
 	public function testDefaultUrlParams() {
 		Configure::write('Routing.prefixes', ['admin', 'tests']);
 		Configure::write('Routing.prefixes', ['admin', 'tests']);
 		$result = CommonComponent::defaultUrlParams();
 		$result = CommonComponent::defaultUrlParams();