Browse Source

automatically handle keyed arrays

or even, mixed arrays
AD7six 11 years ago
parent
commit
c06be868eb
2 changed files with 6 additions and 11 deletions
  1. 1 1
      src/Template/Bake/Element/array_property.ctp
  2. 5 10
      src/View/Helper/BakeHelper.php

+ 1 - 1
src/Template/Bake/Element/array_property.ctp

@@ -7,4 +7,4 @@ use Cake\Utility\Inflector;
  *
  * @var array
  */
-	public $<%= $name %> = [<%= $this->Bake->stringifyList($value, ['keys' => true]) %>];
+	public $<%= $name %> = [<%= $this->Bake->stringifyList($value) %>];

+ 5 - 10
src/View/Helper/BakeHelper.php

@@ -55,21 +55,16 @@ class BakeHelper extends Helper {
  */
 	public function stringifyList($list, $options = []) {
 		$options += [
-			'keys' => false,
-			'indent' => 2,
-			'callback' => function ($v) {
-				return "'$v'";
-			},
+			'indent' => 2
 		];
 
 		if (!$list) {
 			return '';
 		}
 
-		$wrapped = array_map($options['callback'], $list);
-
-		if (!empty($option['keys'])) {
-			foreach($wrapped as $k => &$v) {
+		foreach($list as $k => &$v) {
+			$v = "'$v'";
+			if (!is_numeric($k)) {
 				$v = "'$k' => $v";
 			}
 		}
@@ -82,7 +77,7 @@ class BakeHelper extends Helper {
 			$end = "\n" . str_repeat("\t", $options['indent'] - 1);
 		}
 
-		return $start . implode($join, $wrapped) . $end;
+		return $start . implode($join, $list) . $end;
 	}
 
 	public function aliasExtractor($modelObj, $assoc) {