public function fire() { $folder = Folder::load(database_path('/migrations'), true, 0755); $dontRenderTrigger = !!$this->input->getOption('without-trigger'); if (!$dontRenderTrigger) { File::load($folder->pwd() . '/' . date('Y_m_d_His', time()) . '_create_timestsmp_renew_trigger_function.php', true, 0755, 0644)->write(view('cmf::install.db.create_timestsmp_renew_trigger_function_migration')->render()); } File::load($folder->pwd() . '/' . date('Y_m_d_His', time() + 1) . '_create_admins_table.php', true, 0755, 0644)->write(view('cmf::install.db.create_admins_table_migration', ['withoutTrigger' => $dontRenderTrigger])->render()); $this->line('Done'); $this->line('Run [artisan migrate] (and [composer dump-autoload] if migration classes not found)'); }
public function fire() { $appSubfolder = ucfirst(trim(trim($this->input->getArgument('app_subfolder')), '/\\')); $lowercasedSubfolder = snake_case($appSubfolder); $folderPath = app_path('/' . $appSubfolder); if (Folder::exist($folderPath)) { $this->line('Terminated. Folder [' . $folderPath . '] already exist'); } $folder = Folder::load($folderPath, true, 0755); $dataForViews = ['sectionName' => $appSubfolder, 'urlPrefix' => trim(trim($this->input->getArgument('url_prefix'), '/\\')), 'dbClassesAppSubfolder' => $this->input->getArgument('database_classes_app_subfolder')]; // create site loader $file = File::load($folder->pwd() . '/' . $appSubfolder . 'SiteLoader.php', true, 0755, 0644); $file->write(view('cmf::install.cmf_site_loader', $dataForViews)->render()); // copy configs $subfolder = Folder::load($folder->pwd() . '/Config', true, 0755); $file = File::load($subfolder->pwd() . '/' . $appSubfolder . 'Config.php', true, 0755, 0644); $file->write(view('cmf::install.cmf_config', $dataForViews)->render()); $file = File::load($subfolder->pwd() . '/' . $lowercasedSubfolder . '.routes.php', true, 0755, 0644); $file->write(view('cmf::install.cmf_routes', $dataForViews)->render()); // copy pages controller $subfolder = Folder::load($folder->pwd() . '/Http/Controllers', true, 0755); $file = File::load($subfolder->pwd() . '/PagesController.php', true, 0755, 0644); $file->write(view('cmf::install.pages_controller', $dataForViews)->render()); // create middleware folder File::load($folder->pwd() . '/Http/Middleware/empty', true, 0755, 0644); // make folder in resources File::load(resource_path('/views/' . $lowercasedSubfolder . '/empty'), true, 0755, 0644); if (!$this->input->getOption('no-db-classes')) { // copy base db classes $dbFolder = Folder::load(app_path('/' . $this->input->getArgument('database_classes_app_subfolder')), true, 0755); $file = File::load($dbFolder->pwd() . '/BaseDbModel.php', true, 0755, 0644); $file->write(view('cmf::install.db.base_db_model')->render()); $file = File::load($dbFolder->pwd() . '/BaseDbObject.php', true, 0755, 0644); $file->write(view('cmf::install.db.base_db_object')->render()); // copy admin table classes $subfolder = Folder::load($dbFolder->pwd() . '/Admin', true, 0755); $file = File::load($subfolder->pwd() . '/Admin.php', true, 0755, 0644); $file->write(view('cmf::install.db.admin_object')->render()); $file = File::load($subfolder->pwd() . '/AdminModel.php', true, 0755, 0644); $file->write(view('cmf::install.db.admin_model')->render()); $file = File::load($subfolder->pwd() . '/AdminTableConfig.php', true, 0755, 0644); $file->write(view('cmf::install.db.admin_table_config')->render()); $file = File::load($subfolder->pwd() . '/AdminScaffoldConfig.php', true, 0755, 0644); $file->write(view('cmf::install.db.admin_scaffold_config')->render()); } $this->line('Done'); }
protected function preapareAndGetDataForViews() { $tableName = $this->argument('table_name'); $modelClass = call_user_func([$this->modelParentClass, 'getFullModelClassByTableName'], $tableName); $folder = $this->getFolderAndValidate($tableName, $modelClass); if (empty($folder)) { return false; } $tableSchema = $this->getDbSchema(); $columns = $this->getColumns($tableName, $tableSchema); if (empty($columns)) { return false; } $dataForViews = ['folder' => $folder, 'table' => $tableName, 'schema' => $tableSchema, 'columns' => $columns, 'modelParentClass' => $this->modelParentClass, 'objectParentClass' => $this->objectParentClass, 'tableConfigParentClass' => $this->tableConfigParentClass, 'scaffoldConfigParentClass' => $this->scaffoldConfigParentClass, 'modelClassName' => call_user_func([$this->modelParentClass, 'getModelNameByTableName'], $tableName), 'objectClassName' => call_user_func([$this->modelParentClass, 'getObjectNameByTableName'], $tableName), 'tableConfigClassName' => call_user_func([$this->modelParentClass, 'getTableConfigNameByTableName'], $tableName), 'scaffoldConfigClassName' => CmfConfig::getInstance()->getScaffoldConfigNameByTableName($tableName), 'traitsForTableConfig' => $this->getTraitsForTableConfig()]; $dataForViews['modelAlias'] = $dataForViews['objectClassName']; $dataForViews['namespace'] = call_user_func([$this->modelParentClass, 'getRootNamespace']) . '\\' . $dataForViews['objectClassName']; $dataForViews['files']['model'] = $folder . DIRECTORY_SEPARATOR . $dataForViews['modelClassName'] . '.php'; $dataForViews['files']['object'] = $folder . DIRECTORY_SEPARATOR . $dataForViews['objectClassName'] . '.php'; $dataForViews['files']['table_config'] = $folder . DIRECTORY_SEPARATOR . $dataForViews['tableConfigClassName'] . '.php'; $dataForViews['files']['scaffold_config'] = $folder . DIRECTORY_SEPARATOR . $dataForViews['scaffoldConfigClassName'] . '.php'; Folder::load($folder, true, 0775); return $dataForViews; }