Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

InitHookBehavior.php 1.2KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace app\common\behavior;
  3. use think\Db;
  4. use think\Hook;
  5. class InitHookBehavior {
  6. // 行为扩展的执行入口必须是run
  7. public function run(&$params){
  8. $data = cache('hooks');
  9. $hooks = Db::name('hooks')->field('name,module')->where(array('status'=>1))->cache(true, EYOUCMS_CACHE_TIME, 'hooks')->select();
  10. if(empty($data) && !empty($hooks)){
  11. $exist = \think\Db::query('SHOW TABLES LIKE \''.config('database.prefix').'weapp\'');
  12. if (!empty($exist)) {
  13. $weappRow = Db::name('weapp')->field('code,status')->where(array('status'=>1))->getAllWithIndex('code');
  14. if (!empty($hooks)) {
  15. foreach ($hooks as $key => $val) {
  16. $module = $val['module'];
  17. if (isset($weappRow[$module]) && !empty($module)) {
  18. Hook::add($val['name'], get_weapp_class($module));
  19. }
  20. }
  21. cache('hooks', Hook::get());
  22. }
  23. }
  24. }else{
  25. if (!empty($data)) {
  26. Hook::import($data, false);
  27. }
  28. }
  29. }
  30. }