private static function getViewModels(array $models) { $modelsData = array(); $gp = new GroupPolicy('dummy'); $modelsWithNS = array(); foreach ($models as $model) { if (self::modelExists($model)) { $modelsWithNS[] = self::MODELS_NAMESPACE . $model; } } $methods = $gp->getViewModelMethods($modelsWithNS); unset($modelsWithNS, $gp); foreach ($models as $model) { $tmpArray = array(); $className = self::MODELS_NAMESPACE . $model; if (!empty($methods[$model])) { $tmpArray['methods'] = $methods[$model]; } $dataStructure = $className::getDataStructureStatic(); if (!empty($dataStructure)) { $tmpArray['model'] = $dataStructure; } if (!empty($tmpArray)) { $modelsData[$model] = $tmpArray; } unset($tmpArray, $className); } print json_encode($modelsData); }