88/**
99 * 插件基类
1010 * Class Addons
11- * @author Byron Sampson <[email protected] > 11+ * @author Byron Sampson <[email protected] > 1212 * @package think\addons
1313 */
1414abstract class Addons
@@ -20,6 +20,8 @@ abstract class Addons
2020 protected $ error ;
2121 // 插件目录
2222 public $ addons_path = '' ;
23+ // 插件标识
24+ protected $ addonName = '' ;
2325 // 插件配置作用域
2426 protected $ configRange = 'addonconfig ' ;
2527 // 插件信息作用域
@@ -29,9 +31,13 @@ abstract class Addons
2931 * 架构函数
3032 * @access public
3133 */
32- public function __construct ()
34+ public function __construct ($ name = null )
3335 {
34- $ name = $ this ->getName ();
36+ $ name = is_null ($ name ) ? $ this ->getName () : $ name ;
37+
38+ //设置插件标识
39+ $ this ->addonName = $ name ;
40+
3541 // 获取当前插件目录
3642 $ this ->addons_path = ADDON_PATH . $ name . DS ;
3743
@@ -51,15 +57,18 @@ public function __construct()
5157 * @param string $name
5258 * @return array
5359 */
54- final public function getInfo ($ name = '' )
60+ final public function getInfo ($ name = '' , $ force = false )
5561 {
5662 if (empty ($ name )) {
5763 $ name = $ this ->getName ();
5864 }
59- $ info = Config::get ($ name , $ this ->infoRange );
60- if ($ info ) {
61- return $ info ;
65+ if (!$ force ) {
66+ $ info = Config::get ($ name , $ this ->infoRange );
67+ if ($ info ) {
68+ return $ info ;
69+ }
6270 }
71+ $ info = [];
6372 $ info_file = $ this ->addons_path . 'info.ini ' ;
6473 if (is_file ($ info_file )) {
6574 $ info = Config::parse ($ info_file , '' , $ name , $ this ->infoRange );
@@ -75,15 +84,18 @@ final public function getInfo($name = '')
7584 * @param string $name 可选模块名
7685 * @return array
7786 */
78- final public function getConfig ($ name = '' )
87+ final public function getConfig ($ name = '' , $ force = false )
7988 {
8089 if (empty ($ name )) {
8190 $ name = $ this ->getName ();
8291 }
83- $ config = Config::get ($ name , $ this ->configRange );
84- if ($ config ) {
85- return $ config ;
92+ if (!$ force ) {
93+ $ config = Config::get ($ name , $ this ->configRange );
94+ if ($ config ) {
95+ return $ config ;
96+ }
8697 }
98+ $ config = [];
8799 $ config_file = $ this ->addons_path . 'config.php ' ;
88100 if (is_file ($ config_file )) {
89101 $ temp_arr = include $ config_file ;
@@ -99,7 +111,7 @@ final public function getConfig($name = '')
99111
100112 /**
101113 * 设置配置数据
102- * @param $name
114+ * @param $name
103115 * @param array $value
104116 * @return array
105117 */
@@ -116,7 +128,7 @@ final public function setConfig($name = '', $value = [])
116128
117129 /**
118130 * 设置插件信息数据
119- * @param $name
131+ * @param $name
120132 * @param array $value
121133 * @return array
122134 */
@@ -155,10 +167,22 @@ final public function getFullConfig($name = '')
155167 */
156168 final public function getName ()
157169 {
170+ if ($ this ->addonName ) {
171+ return $ this ->addonName ;
172+ }
158173 $ data = explode ('\\' , get_class ($ this ));
159174 return strtolower (array_pop ($ data ));
160175 }
161176
177+ /**
178+ * 设置插件标识
179+ * @param $name
180+ */
181+ final public function setName ($ name )
182+ {
183+ $ this ->addonName = $ name ;
184+ }
185+
162186 /**
163187 * 检查基础配置信息是否完整
164188 * @return bool
@@ -179,9 +203,9 @@ final public function checkInfo()
179203 * 加载模板和页面输出 可以返回输出内容
180204 * @access public
181205 * @param string $template 模板文件名或者内容
182- * @param array $vars 模板输出变量
183- * @param array $replace 替换内容
184- * @param array $config 模板参数
206+ * @param array $vars 模板输出变量
207+ * @param array $replace 替换内容
208+ * @param array $config 模板参数
185209 * @return mixed
186210 * @throws \Exception
187211 */
@@ -200,9 +224,9 @@ public function fetch($template = '', $vars = [], $replace = [], $config = [])
200224 * 渲染内容输出
201225 * @access public
202226 * @param string $content 内容
203- * @param array $vars 模板输出变量
204- * @param array $replace 替换内容
205- * @param array $config 模板参数
227+ * @param array $vars 模板输出变量
228+ * @param array $replace 替换内容
229+ * @param array $config 模板参数
206230 * @return mixed
207231 */
208232 public function display ($ content , $ vars = [], $ replace = [], $ config = [])
@@ -217,7 +241,7 @@ public function display($content, $vars = [], $replace = [], $config = [])
217241 * 渲染内容输出
218242 * @access public
219243 * @param string $content 内容
220- * @param array $vars 模板输出变量
244+ * @param array $vars 模板输出变量
221245 * @return mixed
222246 */
223247 public function show ($ content , $ vars = [])
@@ -231,7 +255,7 @@ public function show($content, $vars = [])
231255 /**
232256 * 模板变量赋值
233257 * @access protected
234- * @param mixed $name 要显示的模板变量
258+ * @param mixed $name 要显示的模板变量
235259 * @param mixed $value 变量的值
236260 * @return void
237261 */
0 commit comments