mootensai\enhancedgii\model\Generator::generate PHP Method

generate() public method

public generate ( )
    public function generate()
    {
        $files = [];
        $relations = $this->generateRelations();
        $db = $this->getDbConnection();
        $this->nameAttribute = $this->nameAttribute ? explode(',', str_replace(' ', '', $this->nameAttribute)) : [];
        $this->skippedColumns = $this->skippedColumns ? explode(',', str_replace(' ', '', $this->skippedColumns)) : [];
        $this->skippedRelations = $this->skippedRelations ? explode(',', str_replace(' ', '', $this->skippedRelations)) : [$this->skippedRelations];
        $this->skippedColumns = array_filter($this->skippedColumns);
        $this->skippedRelations = array_filter($this->skippedRelations);
        //        $this->skippedRelations = ($this->skippedRelations) ? explode(',', str_replace(' ', '', $this->skippedRelations)) : [];
        foreach ($this->getTableNames() as $tableName) {
            // preparation :
            if (strpos($this->tableName, '*') !== false) {
                $modelClassName = $this->generateClassName($tableName);
            } else {
                $modelClassName = !empty($this->modelClass) ? $this->modelClass : Inflector::id2camel($tableName, '_');
            }
            $queryClassName = $this->generateQuery ? $this->generateQueryClassName($modelClassName) : false;
            $tableSchema = $db->getTableSchema($tableName);
            $this->modelClass = "{$this->nsModel}\\{$modelClassName}";
            $this->tableSchema = $tableSchema;
            $this->isTree = !array_diff(self::getTreeColumns(), $tableSchema->columnNames);
            //            $this->controllerClass = $this->nsController . '\\' . $modelClassName . 'Controller';
            $params = ['tableName' => $tableName, 'className' => $modelClassName, 'queryClassName' => $queryClassName, 'tableSchema' => $tableSchema, 'labels' => $this->generateLabels($tableSchema), 'rules' => $this->generateRules($tableSchema), 'relations' => isset($relations[$tableName]) ? $relations[$tableName] : [], 'isTree' => $this->isTree];
            // model :
            $files[] = new CodeFile(Yii::getAlias('@' . str_replace('\\', '/', $this->nsModel)) . '/base/' . $modelClassName . '.php', $this->render('model.php', $params));
            if (!$this->generateBaseOnly) {
                $files[] = new CodeFile(Yii::getAlias('@' . str_replace('\\', '/', $this->nsModel)) . '/' . $modelClassName . '.php', $this->render('model-extended.php', $params));
            }
            // query :
            if ($queryClassName) {
                $params = ['className' => $queryClassName, 'modelClassName' => $modelClassName];
                $files[] = new CodeFile(Yii::getAlias('@' . str_replace('\\', '/', $this->queryNs)) . '/' . $queryClassName . '.php', $this->render('query.php', $params));
            }
            if (strpos($this->tableName, '*') !== false) {
                $this->modelClass = '';
                //                $this->controllerClass = '';
            } else {
                $this->modelClass = $modelClassName;
                //                $this->controllerClass = $modelClassName . 'Controller';
            }
        }
        $this->nameAttribute = is_array($this->nameAttribute) ? implode(', ', $this->nameAttribute) : '';
        $this->skippedColumns = is_array($this->skippedColumns) ? implode(', ', $this->skippedColumns) : '';
        $this->skippedRelations = is_array($this->skippedRelations) ? implode(', ', $this->skippedRelations) : '';
        return $files;
    }