dongya9904 2016-09-23 13:55
浏览 31
已采纳

如何第三方应用程序访问Yii2(HumHub)

I want to give a 3rd party PHP application access to Yii2 user data (HumHub) and have tried this:

    function getUserId() {
      require_once('../protected/vendor/yiisoft/yii2/Yii.php');
      $yiiConfig = require('../protected/config/common.php');
      (new humhub\components\Application($yiiConfig));
      $user = Yii::$app->user->identity;

      return $user;
    }

This does not work. There are no errors up until new humhub\components\Application($yiiConfig) but then the 3rd party app breaks with no error thrown and the function does not return anything.

I did find this solution which does not work.

Is there are reason this does not work or is there an alternate solution to getting Yii2 user data properly?

  • 写回答

2条回答 默认 最新

  • dongsou3041 2016-09-24 04:02
    关注

    This is how to do it in HumHub V1.0

        require_once('../protected/vendor/yiisoft/yii2/Yii.php');
        $config = yii\helpers\ArrayHelper::merge(
            require('../protected/humhub/config/common.php'),
            require('../protected/humhub/config/web.php'),
            (is_readable('../protected/config/dynamic.php')) ? require('../protected/config/dynamic.php') : [],
            require('../protected/config/common.php'),
            require('../protected/config/web.php')
        );
        new yii\web\Application($config); // No 'run()' invocation!
    

    Now I can get $user object:

       $user = Yii::$app->user->identity;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?