Overview

Namespaces

  • CzProject
    • SqlSchema

Classes

  • CzProject\SqlSchema\Column
  • CzProject\SqlSchema\ForeignKey
  • CzProject\SqlSchema\Index
  • CzProject\SqlSchema\IndexColumn
  • CzProject\SqlSchema\Schema
  • CzProject\SqlSchema\Table

Exceptions

  • CzProject\SqlSchema\DuplicateException
  • CzProject\SqlSchema\EmptyException
  • CzProject\SqlSchema\Exception
  • CzProject\SqlSchema\OutOfRangeException
  • CzProject\SqlSchema\StaticClassException
  • 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: 54: 55: 56: 57: 58: 
<?php

    namespace CzProject\SqlSchema;


    class Schema
    {
        /** @var array  [name => Table] */
        private $tables = array();


        /**
         * @param  string|Table
         * @return Table
         */
        public function addTable($name)
        {
            $table = NULL;

            if ($name instanceof Table) {
                $table = $name;
                $name = $table->getName();

            } else {
                $table = new Table($name);
            }

            if (isset($this->tables[$name])) {
                throw new DuplicateException("Table '$name' already exists.");
            }

            return $this->tables[$name] = $table;
        }


        /**
         * @param  string
         * @return Table|NULL
         */
        public function getTable($name)
        {
            if (isset($this->tables[$name])) {
                return $this->tables[$name];
            }

            return NULL;
        }


        /**
         * @return Table[]
         */
        public function getTables()
        {
            return $this->tables;
        }
    }
czproject/sql-schema v1.0.1 API documentation API documentation generated by ApiGen