Overview

Namespaces

  • Inlm
    • SchemaGenerator
      • Adapters
      • Diffs
      • Dumpers
      • Extractors
      • Loggers
      • Utils

Classes

  • Inlm\SchemaGenerator\Adapters\NeonAdapter
  • Inlm\SchemaGenerator\Configuration
  • Inlm\SchemaGenerator\ConfigurationFactory
  • Inlm\SchemaGenerator\ConfigurationSerializer
  • Inlm\SchemaGenerator\DataType
  • Inlm\SchemaGenerator\DiffGenerator
  • Inlm\SchemaGenerator\Diffs\AddedTableOption
  • Inlm\SchemaGenerator\Diffs\CreatedForeignKey
  • Inlm\SchemaGenerator\Diffs\CreatedTable
  • Inlm\SchemaGenerator\Diffs\CreatedTableColumn
  • Inlm\SchemaGenerator\Diffs\CreatedTableIndex
  • Inlm\SchemaGenerator\Diffs\RemovedForeignKey
  • Inlm\SchemaGenerator\Diffs\RemovedTable
  • Inlm\SchemaGenerator\Diffs\RemovedTableColumn
  • Inlm\SchemaGenerator\Diffs\RemovedTableIndex
  • Inlm\SchemaGenerator\Diffs\RemovedTableOption
  • Inlm\SchemaGenerator\Diffs\UpdatedForeignKey
  • Inlm\SchemaGenerator\Diffs\UpdatedTable
  • Inlm\SchemaGenerator\Diffs\UpdatedTableColumn
  • Inlm\SchemaGenerator\Diffs\UpdatedTableComment
  • Inlm\SchemaGenerator\Diffs\UpdatedTableIndex
  • Inlm\SchemaGenerator\Diffs\UpdatedTableOption
  • Inlm\SchemaGenerator\Dumpers\AbstractSqlDumper
  • Inlm\SchemaGenerator\Dumpers\DibiDumper
  • Inlm\SchemaGenerator\Dumpers\NullDumper
  • Inlm\SchemaGenerator\Dumpers\SqlDumper
  • Inlm\SchemaGenerator\Extractors\DibiMysqlExtractor
  • Inlm\SchemaGenerator\Extractors\LeanMapperExtractor
  • Inlm\SchemaGenerator\Loggers\MemoryLogger
  • Inlm\SchemaGenerator\Loggers\OutputLogger
  • Inlm\SchemaGenerator\SchemaGenerator
  • Inlm\SchemaGenerator\Utils\DataTypeParser
  • Inlm\SchemaGenerator\Utils\Generator

Interfaces

  • Inlm\SchemaGenerator\IAdapter
  • Inlm\SchemaGenerator\IDumper
  • Inlm\SchemaGenerator\IExtractor
  • Inlm\SchemaGenerator\ILogger

Exceptions

  • Inlm\SchemaGenerator\DuplicatedException
  • Inlm\SchemaGenerator\EmptyException
  • Inlm\SchemaGenerator\Exception
  • Inlm\SchemaGenerator\InvalidArgumentException
  • Inlm\SchemaGenerator\MissingArgumentException
  • Inlm\SchemaGenerator\MissingException
  • Inlm\SchemaGenerator\StaticClassException
  • Inlm\SchemaGenerator\UnsupportedException
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 
<?php

    namespace Inlm\SchemaGenerator\Dumpers;

    use CzProject\SqlGenerator;
    use CzProject\SqlSchema;
    use Inlm\SchemaGenerator\Diffs;
    use Inlm\SchemaGenerator\IDumper;


    class DibiDumper extends AbstractSqlDumper
    {
        /** @var \DibiConnection|\Dibi\Connection */
        private $connection;


        /**
         * @param  \DibiConnection|\Dibi\Connection
         */
        public function __construct($connection)
        {
            if (!($connection instanceof \Dibi\Connection || $connection instanceof \DibiConnection)) {
                throw new \Inlm\SchemaGenerator\InvalidArgumentException('Connection must be instance of Dibi\Connection or DibiConnection.');
            }
            $this->connection = $connection;
        }


        /**
         * @return void
         */
        public function end()
        {
            if (!$this->sqlDocument->isEmpty()) {
                $dibiDriver = $this->connection->getDriver();
                $sqlDriver = NULL;

                if ($dibiDriver instanceof \Dibi\Drivers\MySqlDriver || $dibiDriver instanceof DibiMySqlDriver) {
                    $sqlDriver = new SqlGenerator\Drivers\MysqlDriver;

                } elseif ($dibiDriver instanceof \Dibi\Drivers\MySqliDriver || $dibiDriver instanceof DibiMySqliDriver) {
                    $sqlDriver = new SqlGenerator\Drivers\MysqlDriver;

                } else {
                    throw new \Inlm\SchemaGenerator\UnsupportedException('Driver ' . get_class($dibiDriver) . ' is not supported.');
                }

                $dibiDriver->query($this->sqlDocument->toSql($sqlDriver));
            }
            $this->sqlDocument = NULL;
        }
    }
inlm/schema-generator v0.3.0 API documentation API documentation generated by ApiGen