Example #1
0
File: Model.php Project: cmsx/fw
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $schema = 'Schema\\' . $input->getArgument('schema');
     $class = 'ORM\\' . $input->getArgument('class');
     $force = $input->getOption('force');
     $output->writeln(HTML::Tag('info', sprintf('Генерирую класс модели %s по схеме %s...', $class, $schema)));
     //Определяем неймспейс
     $ns = false;
     $path = DIR_APP;
     $a = explode('\\', trim(str_replace('/', '\\', $class), '\\'));
     $classname = array_pop($a);
     if (count($a)) {
         $ns = join('\\', $a);
         $path .= DIRECTORY_SEPARATOR . join(DIRECTORY_SEPARATOR, $a);
     }
     if (!class_exists($schema)) {
         $output->writeln(HTML::Tag('error', sprintf('Схема %s не существует!', $schema)));
         return;
     }
     /** @var $s \CMSx\DB\Schema */
     $s = new $schema(X::DB());
     $code = $s->buildModel($classname, $ns);
     if (!is_dir($path)) {
         mkdir($path, 0750, true);
     }
     $file = $path . DIRECTORY_SEPARATOR . $classname . '.php';
     if (!is_file($file) || $force) {
         file_put_contents($file, $code);
         $output->writeln(HTML::Tag('info', sprintf('Файл модели %s создан: %s', $classname, $file)));
     } else {
         $output->writeln(HTML::Tag('error', sprintf('Файл модели %s уже существует! Используйте опцию -f для перезаписи', $file)));
     }
 }
Example #2
0
File: Drop.php Project: cmsx/fw
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $schema = 'Schema\\' . $input->getArgument('schema');
     $output->writeln(HTML::Tag('info', 'Сбрасываем таблицу схемы ' . $schema));
     if (!class_exists($schema)) {
         $output->writeln(HTML::Tag('error', sprintf('Схема %s не существует!', $schema)));
         return;
     }
     /** @var $s \CMSx\DB\Schema */
     $s = new $schema(X::DB());
     X::DB()->drop($s->getTable())->execute();
     $output->writeln(HTML::Tag('info', 'Таблица ' . $s->getTable() . ' сброшена'));
 }
Example #3
0
File: Update.php Project: cmsx/fw
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $schema = 'Schema\\' . $input->getArgument('schema');
     $output->writeln(HTML::Tag('info', 'Обновляем структуру таблицы по схеме ' . $schema));
     if (!class_exists($schema)) {
         $output->writeln(HTML::Tag('error', sprintf('Схема %s не существует!', $schema)));
         return;
     }
     /** @var $s \CMSx\DB\Schema */
     $s = new $schema(X::DB());
     $s->updateTable();
     $output->writeln(HTML::Tag('info', sprintf('Таблица %s%s обновлена', X::DB()->getPrefix(), $s->getTable())));
 }
Example #4
0
File: Fill.php Project: cmsx/fw
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $schema = 'Schema\\' . $input->getArgument('schema');
     $output->writeln(HTML::Tag('info', 'Загружаем данные по схеме ' . $schema));
     if (!class_exists($schema)) {
         $output->writeln(HTML::Tag('error', sprintf('Схема %s не существует!', $schema)));
         return;
     }
     /** @var $s \CMSx\DB\Schema */
     $s = new $schema(X::DB());
     $s->fillTable();
     $output->writeln(HTML::Tag('info', 'Данные загружены'));
 }
Example #5
0
File: Create.php Project: cmsx/fw
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $schema = 'Schema\\' . $input->getArgument('schema');
     $drop = (bool) $input->getOption('drop');
     $skip = $input->getOption('skip-content');
     $output->writeln(HTML::Tag('info', 'Создаем таблицу по схеме ' . $schema));
     if (!class_exists($schema)) {
         $output->writeln(HTML::Tag('error', sprintf('Схема %s не существует!', $schema)));
         return;
     }
     /** @var $s \CMSx\DB\Schema */
     $s = new $schema(X::DB());
     $s->createTable($drop);
     $output->writeln(HTML::Tag('info', sprintf('Таблица %s%s создана', X::DB()->getPrefix(), $s->getTable())));
     if (!$skip) {
         $s->fillTable();
         $output->writeln(HTML::Tag('info', 'Начальные данные загружены'));
     }
 }