Exemplo n.º 1
0
 /**
  * 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 = "";
         }
     }
 }
Exemplo n.º 2
0
 /**
  * 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 -----");
 }