作者 PPPSCN
提交者 Karson

优化CRUD生成的lang文件——格式美化

@@ -116,6 +116,11 @@ class Crud extends Command @@ -116,6 +116,11 @@ class Crud extends Command
116 */ 116 */
117 protected $editorClass = 'editor'; 117 protected $editorClass = 'editor';
118 118
  119 + /**
  120 + * langList的key最长字节数
  121 + */
  122 + protected $fieldMaxLen = 0;
  123 +
119 protected function configure() 124 protected function configure()
120 { 125 {
121 $this 126 $this
@@ -730,6 +735,15 @@ class Crud extends Command @@ -730,6 +735,15 @@ class Crud extends Command
730 $editList = implode("\n", array_filter($editList)); 735 $editList = implode("\n", array_filter($editList));
731 $javascriptList = implode(",\n", array_filter($javascriptList)); 736 $javascriptList = implode(",\n", array_filter($javascriptList));
732 $langList = implode(",\n", array_filter($langList)); 737 $langList = implode(",\n", array_filter($langList));
  738 + //数组等号对齐
  739 + $langList = array_filter(explode(",\n", $langList . ",\n"));
  740 + foreach ($langList as &$line) {
  741 + if (preg_match("/^\s+'([^']+)'\s*=>\s*'([^']+)'\s*/is", $line, $matches)) {
  742 + $line = " '{$matches[1]}'" . str_pad('=>', ($this->fieldMaxLen - strlen($matches[1]) + 3), ' ', STR_PAD_LEFT) . " '{$matches[2]}'";
  743 + }
  744 + }
  745 + unset($line);
  746 + $langList = implode(",\n", array_filter($langList)). ",";
733 747
734 //表注释 748 //表注释
735 $tableComment = $modelTableInfo['Comment']; 749 $tableComment = $modelTableInfo['Comment'];
@@ -1072,6 +1086,7 @@ EOD; @@ -1072,6 +1086,7 @@ EOD;
1072 { 1086 {
1073 if ($content || !Lang::has($field)) { 1087 if ($content || !Lang::has($field)) {
1074 $itemArr = []; 1088 $itemArr = [];
  1089 + $this->fieldMaxLen = strlen($field) > $this->fieldMaxLen ? strlen($field) : $this->fieldMaxLen;
1075 $content = str_replace(',', ',', $content); 1090 $content = str_replace(',', ',', $content);
1076 if (stripos($content, ':') !== false && stripos($content, ',') && stripos($content, '=') !== false) { 1091 if (stripos($content, ':') !== false && stripos($content, ',') && stripos($content, '=') !== false) {
1077 list($fieldLang, $item) = explode(':', $content); 1092 list($fieldLang, $item) = explode(':', $content);
@@ -1081,6 +1096,7 @@ EOD; @@ -1081,6 +1096,7 @@ EOD;
1081 if (count($valArr) == 2) { 1096 if (count($valArr) == 2) {
1082 list($key, $value) = $valArr; 1097 list($key, $value) = $valArr;
1083 $itemArr[$field . ' ' . $key] = $value; 1098 $itemArr[$field . ' ' . $key] = $value;
  1099 + $this->fieldMaxLen = strlen($field . ' ' . $key) > $this->fieldMaxLen ? strlen($field . ' ' . $key) : $this->fieldMaxLen;
1084 } 1100 }
1085 } 1101 }
1086 } else { 1102 } else {
@@ -1088,7 +1104,7 @@ EOD; @@ -1088,7 +1104,7 @@ EOD;
1088 } 1104 }
1089 $resultArr = []; 1105 $resultArr = [];
1090 foreach ($itemArr as $k => $v) { 1106 foreach ($itemArr as $k => $v) {
1091 - $resultArr[] = " '" . mb_ucfirst($k) . "' => '{$v}'"; 1107 + $resultArr[] = " '" . mb_ucfirst($k) . "' => '{$v}'";
1092 } 1108 }
1093 return implode(",\n", $resultArr); 1109 return implode(",\n", $resultArr);
1094 } else { 1110 } else {
@@ -1129,7 +1145,7 @@ EOD; @@ -1129,7 +1145,7 @@ EOD;
1129 } 1145 }
1130 $stringArr[] = "'" . $k . "' => " . ($is_var ? $v : "'{$v}'"); 1146 $stringArr[] = "'" . $k . "' => " . ($is_var ? $v : "'{$v}'");
1131 } 1147 }
1132 - return implode(",", $stringArr); 1148 + return implode(", ", $stringArr);
1133 } 1149 }
1134 1150
1135 protected function getItemArray($item, $field, $comment) 1151 protected function getItemArray($item, $field, $comment)