1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: 老猫 <thinkcmf@126.com>
- // +----------------------------------------------------------------------
- namespace app\admin\logic;
- use think\Db;
- class HookLogic
- {
- /**
- * 导入应用钩子
- * @param $app
- * @return array
- * @throws \ReflectionException
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public static function importHooks($app)
- {
- $hookConfigFile = cmf_get_app_config_file($app, 'hooks');
- if (file_exists($hookConfigFile)) {
- $hooksInFile = include $hookConfigFile;
- if (empty($hooksInFile) || !is_array($hooksInFile)) {
- return;
- }
- foreach ($hooksInFile as $hookName => $hook) {
- $hook['type'] = empty($hook['type']) ? 2 : $hook['type'];
- if (!in_array($hook['type'], [2, 3, 4]) && !in_array($app, ['cmf', 'swoole'])) {
- $hook['type'] = 2;
- }
- $findHook = Db::name('hook')->where('hook', $hookName)->count();
- $hook['app'] = $app;
- if ($findHook > 0) {
- Db::name('hook')->where('hook', $hookName)->strict(false)->field(true)->update($hook);
- } else {
- $hook['hook'] = $hookName;
- Db::name('hook')->insert($hook);
- }
- }
- }
- }
- }
|