public function getForeigns($foreign) { foreach ($foreign as $k => $v) { if ($this->confirm("Foi encontrado um relacionamento com a tablea => {$v->REFERENCED_TABLE_NAME} , voce gostaria de criar? [y|N]")) { $nome_classe = $this->ask('Qual nome do Método?'); $this->compileRelations .= Tables::compileRelations($v, $nome_classe, $this->project->name_space_projeto); } } }
/** * Execute the console command. * * @return mixed */ public function handle() { if (!($projectName = $this->argument('projetName'))) { $this->info("O Nome do projeto é obrigatorio"); exit; } //Retorna o objeto $this->project = DB::table('projetos')->where('nome_projeto', $projectName)->first(); if (!$this->project) { $this->info("O Nome do projeto é obrigatorio"); exit; } if ($this->project->nome_db_projeto == "") { $this->info("O Nome do base de dados não foi setada no projeto"); exit; } //Seto a base de dados Tables::setDatabase($this->project->nome_db_projeto); //Seto o caminho do projeto Tables::setDirProject($this->project->path_projeto_projeto); //Seto o caminho onde o arquivo sera gravado Tables::setPathFile($this->pathFile); //Seto o caminho e o nome do arquivo modelo Generic::setFilePath($this->pathFileModel); if (!($tables = Tables::getTables())) { $this->info("Não há tabelas para ser processado"); exit; } foreach ($tables as $value) { if ($this->confirm("Voce gostaria de criar o Request {$value->table_name} ? [y|N]")) { //Passo cada tabela e retorno todos os campos $this->tableDescribes = Tables::getTableDescribes($value->table_name); //Comcateno em tableField todos os campos da tabela $this->tableFields .= "[ " . PHP_EOL; foreach ($this->tableDescribes as $values) { if (!in_array($values->Field, $this->ignore)) { $this->tableFields .= "\t\t\t'" . $values->Field . "'" . " => ''," . "\n"; } } $this->tableFields .= "\t\t];"; //dd($this->tableFields); //Retorna todos os relacionamentos da tabela $foreign = Tables::getForeigns($value->table_name); //$this->getForeigns($foreign); Generic::setReplacements(['NAMESPACE' => $this->project->name_space_projeto]); Generic::setReplacements(['CLASS' => Tables::ucWords($value->table_name . "_Request")]); Generic::setReplacements(['RULES' => $this->tableFields]); Tables::write(Generic::getContents(Generic::getReplacements())); Generic::clearReplacements(); $this->compileRelations = ""; $this->tableFields = ""; } } }
/** * Execute the console command. * * @return mixed */ public function handle() { if (!($projectName = $this->argument('projectName'))) { $this->info("O Nome do projeto é obrigatorio"); exit; } //Retorna o objeto $this->project = DB::table('projetos')->where('nome_projeto', $projectName)->first(); if (!$this->project) { $this->info("Projeto não encontrado"); exit; } if ($this->project->nome_db_projeto == "") { $this->info("O Nome do base de dados não foi setado no projeto"); exit; } if ($this->project->bundle == "") { $this->info("O Nome do Blunde não foi setado no projeto"); exit; } if ($this->project->name_space_projeto == "") { $this->info("O Nome da NameSpace não foi setado no projeto"); exit; } $this->pathBundleName = "../" . $this->project->path_projeto_projeto . "/" . "src" . "/" . $this->project->name_space_projeto . "/" . "Bundles" . "/" . $this->project->bundle; //dd($this->pathBundleName); //Seto a base de dados Tables::setDatabase($this->project->nome_db_projeto); //Seto o caminho do projeto Tables::setDirProject($this->project->path_projeto_projeto); //Retorna todas as tabelas if (!($tables = Tables::getTables())) { $this->info("Não há tabelas para ser processado"); exit; } //Varre todas as tabelas do banco de dados foreach ($tables as $value) { //dd($tables); if ($this->confirm("Voce gostaria de criar o CRUD {$value} ? [y|N]")) { //O Nome da entidade será o mesmo nome da tabela, se singular ou plural //dd( $this->pathBundleName . "/" . "Entity" . "/" . ucfirst( $value->table_name) . ".php" ); //$this->files->exists(Tables::getDirProject() . ""); //Verifica se a entidade foi criada $this->isExistEntity($value); $this->info("----- 1 - Criando no direório DAO o arquivo Interface" . ucfirst($value) . "DAO.php" . " da entitade {$value} -----"); $this->createInterfaceEntityDAO($value); $this->info("----- 2 - Criando no diretório DAO o arquivo " . ucfirst($value) . "DAO.php" . " da entitade {$value} -----"); $this->createEntityDAO($value); $this->info("----- 3 - Criando no diretório RN o arquivo " . ucfirst($value) . "RN.php" . " da entitade {$value} -----"); $this->createEntityRN($value); $this->info("----- 4 - Criando no diretório FORM o arquivo " . ucfirst($value) . "TYPE.php" . " da entitade {$value} -----"); $this->createEntityType($value); $this->info("----- 5 - Criando no diretório Controller o arquivo " . ucfirst($value) . "Controller.php" . " da entitade {$value} -----"); $this->createEntityController($value); } } $this->info("----- Fim do Processo -----"); }