eof.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. function getFilesTxt($files){
  3. $str = '';
  4. foreach($files as $file){
  5. if(!$file){
  6. continue;
  7. }
  8. $str.=<<<EOF
  9. "{$file}",
  10. EOF;
  11. }
  12. return $str;
  13. }
  14. function getUnpackTxt($unpack)
  15. {
  16. $str = '';
  17. foreach($unpack as $file){
  18. if(!$file){
  19. continue;
  20. }
  21. $str.=<<<EOF
  22. "{$file}",
  23. EOF;
  24. }
  25. return $str;
  26. }
  27. function getRequireTxt($require)
  28. {
  29. $str = '';
  30. foreach($require as $re){
  31. if(!$re){
  32. continue;
  33. }
  34. if(!class_exists($re)){
  35. throw new \Exception("{$re}类不存在");
  36. }
  37. $str.=<<<EOF
  38. {$re}::class,
  39. EOF;
  40. }
  41. return $str;
  42. }
  43. function getAddonsTxt($addons)
  44. {
  45. $str = '';
  46. foreach($addons as $re){
  47. if(!$re){
  48. continue;
  49. }
  50. if(!addons_installed($re)){
  51. $ad=get_addons($re);
  52. throw new \Exception("扩展{$ad->name}不存在");
  53. }
  54. $ad=get_addons($re);
  55. $str.=<<<EOF
  56. "{$re}"=>"{$ad->name}",
  57. EOF;
  58. }
  59. return $str;
  60. }
  61. function getMenuTxt($menulist)
  62. {
  63. if(count($menulist)==0){
  64. return '';
  65. }
  66. $str='';
  67. foreach ($menulist as $menu){
  68. $arr=parseMenu($menu);
  69. $txt=getArrayTxt($arr);
  70. $str.=<<<EOF
  71. {$txt}
  72. EOF;
  73. }
  74. return $str;
  75. }
  76. function getTableTxt($table)
  77. {
  78. if(empty($table)){
  79. return '';
  80. }
  81. $str='';
  82. foreach ($table as $te){
  83. $str.=<<<EOF
  84. "{$te}",
  85. EOF;
  86. }
  87. return $str;
  88. }
  89. function parseMenu($menu){
  90. $arr=[
  91. 'id'=>$menu['id'],
  92. 'controller'=>$menu['controller'],
  93. 'action'=>$menu['action'],
  94. 'title'=>$menu['title'],
  95. 'icon'=>$menu['icon'],
  96. 'ismenu'=>$menu['ismenu'],
  97. 'menutype'=>$menu['menutype'],
  98. 'extend'=>$menu['extend'],
  99. 'weigh'=>$menu['weigh'],
  100. ];
  101. if(count($menu['childlist'])>0){
  102. foreach ($menu['childlist'] as $key=>$value){
  103. $menu['childlist'][$key]=parseMenu($value);
  104. }
  105. $arr['childlist']=$menu['childlist'];
  106. }
  107. return $arr;
  108. }
  109. function getConfigTxt($config)
  110. {
  111. $str = '';
  112. foreach($config as $fig){
  113. $arr=[
  114. 'id'=>$fig['id'],
  115. 'name'=>$fig['name'],
  116. 'title'=>$fig['title'],
  117. 'type'=>$fig['type'],
  118. 'tip'=>$fig['tip'],
  119. 'rules'=>$fig['rules'],
  120. 'extend'=>$fig['extend']
  121. ];
  122. $txt=getArrayTxt($arr);
  123. //去掉末尾的逗号
  124. $str.=<<<EOF
  125. {$txt}
  126. EOF;
  127. }
  128. return $str;
  129. }
  130. function getArrayTxt($arr)
  131. {
  132. $str = '[';
  133. foreach($arr as $key=>$value){
  134. if(is_array($value)){
  135. if(is_numeric($key)){
  136. $str.=getArrayTxt($value);
  137. }else{
  138. $str.='\''.$key.'\'=>'.getArrayTxt($value);
  139. }
  140. }else{
  141. if(is_numeric($value)){
  142. $str.=<<<EOF
  143. '{$key}'=>{$value},
  144. EOF;
  145. }else{
  146. $str.=<<<EOF
  147. '{$key}'=>'{$value}',
  148. EOF;
  149. }
  150. }
  151. }
  152. $str=substr($str,0,strlen($str)-1);
  153. return $str.'],';
  154. }