Пример #1
0
 public static function getCrossVersionDiffData()
 {
     $result = [];
     //берем две последние версии
     $versions = self::getLast2Versions();
     if (count($versions) == 2) {
         $modelPrev = JsonHistory::find()->where(['version' => $versions[0]])->orderBy('id DESC')->one();
         $modelCurrent = JsonHistory::find()->where(['version' => $versions[1]])->orderBy('id DESC')->one();
         if ($modelPrev && $modelCurrent) {
             $result = JsonSchemaDiff::diff(json_decode($modelPrev->content, 1), json_decode($modelCurrent->content, 1));
         }
     }
     return $result;
 }
Пример #2
0
 public function saveToDb()
 {
     $content = $this->getDocData();
     $hash = md5($content);
     $version = $this->getVersion();
     $model = JsonHistory::find()->where(['hash' => $hash, 'version' => $version])->one();
     if (!$model) {
         $model = new JsonHistory();
         $model->content = $content;
         $model->hash = $hash;
         $model->version = $version;
         $model->created_at = time();
         $model->size = strlen($content);
         if (!$model->save()) {
             var_dump($model->errors);
             die(__METHOD__);
         }
     }
 }
Пример #3
0
 public function run()
 {
     $models = JsonHistory::find()->where(['version' => \Yii::$app->docParser->getVersion()])->orderBy('created_at DESC')->all();
     $crossVersionData = JsonHistory::getCrossVersionDiffData();
     return $this->render('diffWidget/main', ['crossVersionData' => $crossVersionData, 'models' => $models]);
 }