* Copyright 2016 Nicolas Goaziou * * This file is part of FAI Gestion forked from CHD Gestion. * * FAI Gestion is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * FAI Gestion is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with FAI Gestion. If not, see . **/ namespace CustomTheme\Shell; use Cake\Console\Shell; use Cake\Utility\Inflector; use Bake\Shell\BakeShell as BaseShell; class BakeShell extends BaseShell { /** * Assign $this->connection to the active task if a connection param is set. * * @return void */ public function startup() { parent::startup(); } /** * Quickly bake the MVC * * @param string|null $name Name. * @return bool */ public function all($name = null) { $this->out('Bake All'); $this->hr(); if (!empty($this->params['connection'])) { $this->connection = $this->params['connection']; } if (empty($name) && !$this->param('everything')) { $this->Model->connection = $this->connection; $this->out('Possible model names based on your database:'); foreach ($this->Model->listUnskipped() as $table) { $this->out('- ' . $table); } $this->out('Run `cake bake all [name]` to generate skeleton files.'); return false; } $allTables = collection([$name]); $filteredTables = $allTables; if ($this->param('everything')) { $this->Model->connection = $this->connection; $filteredTables = collection($this->Model->listUnskipped()); } foreach (['Model', 'Controller', 'Template'] as $task) { $filteredTables->each(function ($tableName) use ($task) { $tableName = $this->_camelize($tableName); $this->{$task}->connection = $this->connection; $this->{$task}->interactive = $this->interactive; $this->{$task}->main($tableName); }); } $this->out('Bake All complete.', 1, Shell::QUIET); return true; } }