9898
9999/**
100100 * 处理插件钩子
101- * @param string $hook 钩子名称
102- * @param mixed $params 传入参数
101+ * @param string $hook 钩子名称
102+ * @param mixed $params 传入参数
103103 * @return void
104104 */
105105function hook ($ hook , $ params = [])
@@ -134,6 +134,8 @@ function get_addon_list()
134134 continue ;
135135
136136 $ info = Config::parse ($ info_file , '' , "addon-info- {$ name }" );
137+ if (!isset ($ info ['name ' ]))
138+ continue ;
137139 $ info ['url ' ] = addon_url ($ name );
138140 $ list [$ name ] = $ info ;
139141 }
@@ -142,6 +144,7 @@ function get_addon_list()
142144
143145/**
144146 * 获得插件自动加载的配置
147+ * @param bool $truncate 是否清除手动配置的钩子
145148 * @return array
146149 */
147150function get_addon_autoload_config ($ truncate = false )
@@ -206,8 +209,8 @@ function get_addon_autoload_config($truncate = false)
206209
207210/**
208211 * 获取插件类的类名
209- * @param $name 插件名
210- * @param string $type 返回命名空间类型
212+ * @param string $name 插件名
213+ * @param string $type 返回命名空间类型
211214 * @param string $class 当前类名
212215 * @return string
213216 */
@@ -277,7 +280,7 @@ function get_addon_config($name)
277280
278281/**
279282 * 获取插件的单例
280- * @param $name
283+ * @param string $name 插件名
281284 * @return mixed|null
282285 */
283286function get_addon_instance ($ name )
@@ -297,8 +300,8 @@ function get_addon_instance($name)
297300
298301/**
299302 * 插件显示内容里生成访问插件的url
300- * @param $url 地址 格式:插件名/控制器/方法
301- * @param array $vars 变量参数
303+ * @param string $url 地址 格式:插件名/控制器/方法
304+ * @param array $vars 变量参数
302305 * @param bool|string $suffix 生成的URL后缀
303306 * @param bool|string $domain 域名
304307 * @return bool|string
@@ -323,6 +326,7 @@ function addon_url($url, $vars = [], $suffix = true, $domain = false)
323326 $ dispatch = think \Request::instance ()->dispatch ();
324327 $ indomain = isset ($ dispatch ['var ' ]['indomain ' ]) && $ dispatch ['var ' ]['indomain ' ] ? true : false ;
325328 $ domainprefix = $ config && isset ($ config ['domain ' ]) && $ config ['domain ' ] ? $ config ['domain ' ] : '' ;
329+ $ domain = $ domainprefix && Config::get ('url_domain_deploy ' ) ? $ domainprefix : $ domain ;
326330 $ rewrite = $ config && isset ($ config ['rewrite ' ]) && $ config ['rewrite ' ] ? $ config ['rewrite ' ] : [];
327331 if ($ rewrite ) {
328332 $ path = substr ($ url , stripos ($ url , '/ ' ) + 1 );
@@ -352,13 +356,15 @@ function addon_url($url, $vars = [], $suffix = true, $domain = false)
352356 $ vars [substr ($ k , 1 )] = $ v ;
353357 }
354358 }
355- return url ($ val , [], $ suffix , $ domain ) . ($ vars ? '? ' . http_build_query ($ vars ) : '' );
359+ $ url = url ($ val , [], $ suffix , $ domain ) . ($ vars ? '? ' . http_build_query ($ vars ) : '' );
360+ $ url = preg_replace ("/\/((?!index)[\w]+)\.php\//i " , "/ " , $ url );
361+ return $ url ;
356362}
357363
358364/**
359365 * 设置基础配置信息
360- * @param string $name 插件名
361- * @param array $array
366+ * @param string $name 插件名
367+ * @param array $array 配置数据
362368 * @return boolean
363369 * @throws Exception
364370 */
@@ -367,6 +373,9 @@ function set_addon_info($name, $array)
367373 $ file = ADDON_PATH . $ name . DIRECTORY_SEPARATOR . 'info.ini ' ;
368374 $ addon = get_addon_instance ($ name );
369375 $ array = $ addon ->setInfo ($ name , $ array );
376+ if (!isset ($ array ['name ' ]) || !isset ($ array ['title ' ]) || !isset ($ array ['version ' ])) {
377+ throw new Exception ("插件配置写入失败 " );
378+ }
370379 $ res = array ();
371380 foreach ($ array as $ key => $ val ) {
372381 if (is_array ($ val )) {
@@ -389,9 +398,11 @@ function set_addon_info($name, $array)
389398
390399/**
391400 * 写入配置文件
392- * @param string $name 插件名
393- * @param array $config 配置数据
401+ * @param string $name 插件名
402+ * @param array $config 配置数据
394403 * @param boolean $writefile 是否写入配置文件
404+ * @return bool
405+ * @throws Exception
395406 */
396407function set_addon_config ($ name , $ config , $ writefile = true )
397408{
@@ -414,8 +425,8 @@ function set_addon_config($name, $config, $writefile = true)
414425/**
415426 * 写入配置文件
416427 *
417- * @param string $name 插件名
418- * @param array $array
428+ * @param string $name 插件名
429+ * @param array $array 配置数据
419430 * @return boolean
420431 * @throws Exception
421432 */
0 commit comments