Advertisement
Guest User

Propel Schema Builder

a guest
Sep 1st, 2014
13
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. namespace Phalcon\Ext;
  4.  
  5. class SchemaBuilder {
  6.    
  7.     private $schema;
  8.    
  9.     private $tbl_name;
  10.    
  11.     protected $added = array();
  12.    
  13.     //Checks if an table exists
  14.     private function tableExists($tbl_name) {
  15.         return preg_match("~<table\sname=\"$tbl_name\"~", $this->schema_object);
  16.     }
  17.    
  18.     //Loads XML File into Object
  19.     public function loadXML($file) {
  20.         return simplexml_load_string(file_get_contents($file));
  21.     }
  22.    
  23.     /*
  24.     * Writes XML Content to a schemata file
  25.     */
  26.     private function writeXML($file, $content) {
  27.         return file_put_contents($file, $content);
  28.     }
  29.    
  30.     /*
  31.     * Appends Table to Schemata
  32.     */
  33.     private function appendTable($params, $i=0, $columns=array(), $additional_params=array(), $column_added=false) {
  34.         $columns_xml = "";
  35.         $foreignKeys_xml = "";
  36.         $indexes_xml = "";
  37.         $uniques_xml = "";
  38.         $id_method_parameters_xml = "";
  39.         $external_schemas_xml = "";
  40.         $i=0;
  41.         $table_params = (isset($params[0]) ? 'name="'.$params[0].'" ' : 'name="'.$this->tbl_name.'" ').(isset($params[1]) ? 'phpName="'.$params[1].'" ' : '').(isset($params[2]) ? 'namespace="'.$params[2].'" ' : '').(isset($params[3]) ? 'idMethod="'.$params[3].'" ' : '').(isset($params[4]) ? 'package="'.$params[4].'" ' : '').(isset($params[5]) ? 'schema="'.$params[5].'" ' : '').(isset($params[6]) ? 'skipSql="'.$params[6].'" ' : '').(isset($params[7]) ? 'abstract="'.$params[7].'" ' : '').(isset($params[8]) ? 'phpNamingMethod="'.$params[8].'" ' : '').(isset($params[9]) ? 'baseClass="'.$params[9].'" ' : '').(isset($params[10]) ? 'description="'.$params[10].'" ' : '').(isset($params[11]) ? 'heavyIndexing="'.$params[11].'" ' : '').(isset($params[12]) ? 'readOnly="'.$params[12].'" ' : '').(isset($params[13]) ? 'treeMode="'.$params[13].'" ' : '').(isset($params[14]) ? 'reloadOnInsert="'.$params[14].'" ' : '').(isset($params[15]) ? 'reloadOnUpdate="'.$params[15].'" ' : '').(isset($params[16]) ? 'allowPkInsert="'.$params[16].'"' : '');
  42.         foreach ($columns as $column) {
  43.             if (isset($column_added[is_object($column) ? reset($column['name']) : $column['name']])) {
  44.                 $column_params = (isset($column['name']) ? 'name="'.$column['name'].'" ' : 'name="column_'.$i.'" ').(isset($column['phpName']) ? 'phpName="'.$column['phpName'].'" ' : '').(isset($column['type']) ? 'type="'.$column['type'].'" ' : '').(isset($column['required']) ? 'required="'.$column['required'].'" ' : '').(isset($column['primaryKey']) ? 'primaryKey="'.$column['primaryKey'].'" ' : '').(isset($column['autoIncrement']) ? 'autoIncrement="'.$column['autoIncrement'].'" ' : '').(isset($column['size']) ? 'size="'.$column['size'].'" ' : '').(isset($column['tableMapName']) ? 'tableMapName="'.$column['tableMapName'].'" ' : '').(isset($column['phpType']) ? 'phpType="'.$column['phpType'].'" ' : '').(isset($column['sqlType']) ? 'sqlType="'.$column['sqlType'].'" ' : '').(isset($column['scale']) ? 'scale="'.$column['scale'].'" ' : '').(isset($column['defaultValue']) ? 'defaultValue="'.$column['defaultValue'].'" ' : '').(isset($column['defaultExpr']) ? 'defaultExpr="'.$column['defaultExpr'].'" ' : '').(isset($column['valueSet']) ? 'valueSet="'.$column['valueSet'].'" ' : '').(isset($column['lazyLoad']) ? 'lazyLoad="'.$column['lazyLoad'].'" ' : '').(isset($column['description']) ? 'description="'.$column['description'].'" ' : '').(isset($column['primaryString']) ? 'primaryString="'.$column['primaryString'].'" ' : '').(isset($column['phpNamingMethod']) ? 'phpNamingMethod="'.$column['phpNamingMethod'].'" ' : '').(isset($column['inheritance']) ? 'inheritance="'.$column['inheritance'].'" ' : '');
  45.                 $columns_xml .= "\t\t<column $column_params/>\n";
  46.                 $i++;
  47.             }
  48.         }
  49.         if (isset($additional_params[0])) {
  50.             foreach ($additional_params[0] as $foreignKey) {
  51.                 $foreignKey_params = 'foreignTable="'.$foreignKey['foreignTable'].'" '.(isset($foreignKey['foreignSchema']) ? 'foreignSchema="'.$foreignKey['foreignSchema'].'" ' : '').(isset($foreignKey['name']) ? 'name="'.$foreignKey['name'].'" ' : '').(isset($foreignKey['phpName']) ? 'phpName="'.$foreignKey['phpName'].'" ' : '').(isset($foreignKey['refPhpName']) ? 'refPhpName="'.$foreignKey['refPhpName'].'" ' : '').(isset($foreignKey['onDelete']) ? 'onDelete="'.$foreignKey['onDelete'].'" ' : '').(isset($foreignKey['onUpdate']) ? 'onUpdate="'.$foreignKey['onUpdate'].'" ' : '').(isset($foreignKey['skipSql']) ? 'skipSql="'.$foreignKey['skipSql'].'" ' : '').(isset($foreignKey['defaultJoin']) ? 'defaultJoin="'.$foreignKey['defaultJoin'].'" ' : '');
  52.                 $foreignKeys_xml .= "\t\t<foreign-key $foreignKey_params>\n";
  53.                 foreach (isset($foreignKey->reference) ? $foreignKey->reference : $foreignKey['references'] as $reference) {
  54.                     $local = $reference['local'];
  55.                     $foreign = $reference['foreign'];
  56.                     $foreignKeys_xml .= "\t\t\t<reference local=\"$local\" foreign=\"$foreign\"/>\n";
  57.                 }
  58.                 $foreignKeys_xml .= "\t\t</foreign-key>\n";
  59.             }
  60.         }
  61.         if (isset($additional_params[1])) {
  62.             foreach ($additional_params[1] as $index) {
  63.                 $index_name = isset($index['name']) ? 'name="'.$index['name'].'"' : '';
  64.                 $indexes_xml .= "\t\t<index $index_name>\n";
  65.                 foreach ($index->index_column as $index_column) {
  66.                     $index_column_name = 'name="'.$index_column['name'].'"';
  67.                     $index_column_size = isset($index_column['size']) ? 'size="'.$index_column['size'].'" ' : '';
  68.                     $indexes_xml .= "\t\t\t<index-column $index_column_name $index_column_size/>\n";
  69.                 }
  70.                 $indexes_xml .= "\t\t</index>\n";
  71.             }
  72.         }
  73.         if (isset($additional_params[2])) {
  74.             foreach ($additional_params[2] as $unique) {
  75.                 $unique_name = isset($unique['name']) ? 'name="'.$unique['name'].'"' : '';
  76.                 $uniques_xml .= "\t\t<unique $index_name>\n";
  77.                 foreach ($unique->unique_column as $unique_column) {
  78.                     $unique_column_name = 'name="'.$unique_column['name'].'"';
  79.                     $unique_column_size = isset($unique_column['size']) ? 'size="'.$unique_column['size'].'" ' : '';
  80.                     $uniques_xml .= "\t\t\t<unique-column $unique_column_name $unique_column_size/>\n";
  81.                 }
  82.                 $indexes_xml .= "\t\t</unique>\n";
  83.             }
  84.         }
  85.         if (isset($additional_params[3])) {
  86.             foreach ($additional_params[3] as $id_method_parameter) {
  87.                 $id_method_parameter_value = $id_method_parameter['value'];
  88.                 $id_method_parameters_xml .= "<id-method-parameter value=\"$id_method_parameter_value\"/>\n";
  89.             }
  90.         }
  91.         if (isset($additional_params[4])) {
  92.             foreach ($additional_params[4] as $external_schema) {
  93.                 $external_schema_filename = 'filename="'.$external_schema['filename'].'"';
  94.                 $external_schema_referenceOnly = isset($external_schema['referenceOnly']) ? 'referenceOnly="'.$external_schema['referenceOnly'].'" ' : 'referenceOnly="true" ';
  95.                 $external_schemas_xml .= "<external-schema $external_schema_filename $external_schema_referenceOnly/>\n";
  96.             }
  97.         }
  98.         return "\t<table $table_params>\n$columns_xml $foreignKeys_xml $indexes_xml $uniques_xml $id_method_parameters_xml  $external_schemas_xml</table>\n";
  99.     }
  100.    
  101.     /*
  102.     * Creates Schemata Content
  103.     */
  104.     private function createSchema($params, $tables=array(), $column_added=false) {
  105.         $tables_schema = '';
  106.         $i=0;
  107.         foreach ($tables as $table) {
  108.             $tables_schema .= $this->appendTable($table[0], $i, $table[1], $table[2], $column_added);
  109.             $i++;
  110.         }
  111.         $package = isset($params[2]['package']) ? 'package="'.$params[2]['package'].'" ' : '';
  112.         $schema = isset($params[2]['schema']) ? 'schema="'.$params[2]['schema'].'" ' : '';
  113.         $namespace = isset($params[2]['namespace']) ? 'namespace="'.$params[2]['namespace'].'" ' : '';
  114.         $baseclass = isset($params[2]['baseclass']) ? 'baseclass="'.$params[2]['baseclass'].'" ' : '';
  115.         $defaultPhpNamingMethod = isset($params[2]['defaultPhpNamingMethod']) ? 'defaultPhpNamingMethod="'.$params[2]['defaultPhpNamingMethod'].'" ' : '';
  116.         $heavyIndexing = isset($params[2]['heavyIndexing']) ? 'heavyIndexing="'.$params[2]['heavyIndexing'].'" ' : '';
  117.         $tablePrefix = isset($params[2]['tablePrefix']) ? 'tablePrefix="'.$params[2]['tablePrefix'].'" ' : '';
  118.         $additional_params = $package.$schema.$namespace.$baseclass.$defaultPhpNamingMethod.$heavyIndexing.$tablePrefix;
  119.         return "<database name=\"$params[0]\" defaultIdMethod=\"$params[1]\" $additional_params>\n$tables_schema</database>";
  120.     }
  121.    
  122.     //Reads Schema or creates one if its empty
  123.     private function readSchema() {
  124.         return is_object($this->schema) ? $this->schema : $this->createSchema($this->params);
  125.     }
  126.    
  127.     //Returns array of Tables of the current Schemata
  128.     public function readTables($schema=false) {
  129.         $i=0;
  130.         $schema = is_object($schema) ? $schema : $this->schema;
  131.         if (is_object($schema)) {
  132.             foreach ($schema->table as $table) {
  133.                 if (isset($this->added[reset($table['name'])])) {
  134.                     $object_array[$i] = $table;
  135.                     $tables[$i][0][0] = $table['name'];
  136.                     if (isset($table['phpName']))  {
  137.                         $tables[$i][0][1] = $table['phpName'];
  138.                     }
  139.                     if (isset($table['namespace']))  {
  140.                         $tables[$i][0][2] = $table['namespace'];
  141.                     }
  142.                     if (isset($table['idMethod']))  {
  143.                         $tables[$i][0][3] = $table['idMethod'];
  144.                     }
  145.                     if (isset($table['package']))  {
  146.                         $tables[$i][0][4] = $table['package'];
  147.                     }
  148.                     if (isset($table['schema']))  {
  149.                         $tables[$i][0][5] = $table['schema'];
  150.                     }
  151.                     if (isset($table['skipSql']))  {
  152.                         $tables[$i][0][6] = $table['skipSql'];
  153.                     }
  154.                     if (isset($table['abstract']))  {
  155.                         $tables[$i][0][7] = $table['abstract'];
  156.                     }
  157.                     if (isset($table['phpNamingMethod']))  {
  158.                         $tables[$i][0][8] = $table['phpNamingMethod'];
  159.                     }
  160.                     if (isset($table['baseClass']))  {
  161.                         $tables[$i][0][9] = $table['baseClass'];
  162.                     }
  163.                     if (isset($table['description']))  {
  164.                         $tables[$i][0][10] = $table['description'];
  165.                     }
  166.                     if (isset($table['heavyIndexing']))  {
  167.                         $tables[$i][0][11] = $table['heavyIndexing'];
  168.                     }
  169.                     if (isset($table['readOnly']))  {
  170.                         $tables[$i][0][12] = $table['readOnly'];
  171.                     }
  172.                     if (isset($table['treeMode']))  {
  173.                         $tables[$i][0][13] = $table['treeMode'];
  174.                     }
  175.                     if (isset($table['reloadOnInsert']))  {
  176.                         $tables[$i][0][14] = $table['reloadOnInsert'];
  177.                     }
  178.                     if (isset($table['reloadOnUpdate']))  {
  179.                         $tables[$i][0][15] = $table['reloadOnUpdate'];
  180.                     }
  181.                     if (isset($table['allowPkInsert']))  {
  182.                         $tables[$i][0][16] = $table['allowPkInsert'];
  183.                     }
  184.                     if (isset($table->column)) {
  185.                         $a=0;
  186.                         foreach ($table->column as $column) {
  187.                             $tables[$i][1][$a] = $column;
  188.                             $a++;
  189.                         }
  190.                     } else {
  191.                         $tables[$i][1] = array();
  192.                     }
  193.                     $fk = 'foreign-key';
  194.                     if (isset($table->$fk)) {
  195.                         $a=0;
  196.                         foreach ($table->$fk as $foreign_key) {
  197.                             $tables[$i][2][0][$a] = $foreign_key;
  198.                             $a++;
  199.                         }
  200.                     } else {
  201.                         $tables[$i][2][0] = array();
  202.                     }
  203.                     if (isset($table->index)) {
  204.                         $a=0;
  205.                         foreach ($table->index as $index) {
  206.                             $tables[$i][2][1][$a] = $index;
  207.                             $a++;
  208.                         }
  209.                     } else {
  210.                         $tables[$i][2][1] = array();
  211.                     }
  212.                     if (isset($table->unique)) {
  213.                         $a=0;
  214.                         foreach ($table->unique as $unique) {
  215.                             $tables[$i][2][2][$a] = $unique;
  216.                             $a++;
  217.                         }
  218.                     } else {
  219.                         $tables[$i][2][2] = array();
  220.                     }
  221.                     $id_method = 'id-method-parameter';
  222.                     if (isset($table->$id_method)) {
  223.                         $a=0;
  224.                         foreach ($table->$id_method as $id_method_parameter) {
  225.                             $tables[$i][2][3][$a] = $id_method_parameter;
  226.                             $a++;
  227.                         }
  228.                     } else {
  229.                         $tables[$i][2][3] = array();
  230.                     }
  231.                     if (isset($table->external_schema)) {
  232.                         $a=0;
  233.                         foreach ($table->external_schema as $external_schema) {
  234.                             $tables[$i][2][4][$a] = $external_schema;
  235.                             $a++;
  236.                         }
  237.                     } else {
  238.                         $tables[$i][2][4] = array();
  239.                     }
  240.                     $i++;
  241.                 }
  242.             }
  243.         }
  244.         return array("object_array" => isset($object_array) ? $object_array : array(), "tables" => isset($tables) ? $tables : array(), "count" => isset($i) ? $i-1 : -1);
  245.     }
  246.    
  247.     /*
  248.     * Builds Schemata file
  249.     * Schemata Builds can be freezed for performance gain
  250.     */
  251.     public function build($tables=array(), $tbl_name="", $column_added=false) {
  252.         $tables = empty($tables) ? $this->readTables() : $tables;
  253.         $this->schema_object = empty($column_added) ? $this->createSchema($this->params, $tables) : $this->createSchema($this->params, $tables, $column_added);
  254.         return $this->freeze ? new Table($this, false) : $this->writeXML($this->dbfile, $this->schema_object) ? new Table($this, $tbl_name, $this->dbfile) : new Table($this, false);
  255.     }
  256.    
  257.     //Loads the Schema when constructing and saves whether to freeze the schema
  258.     public function __construct($file, $db_name, $freeze=false, $params=array()) {
  259.         $this->dbfile = $file.'schema.xml';
  260.         $this->schema = file_exists($file.'schema.xml') ? $this->loadXML($file.'schema.xml') : fopen($file.'schema.xml', 'w+');
  261.         $this->params = array($db_name, isset($params[0]) ? $params[0] : 'native', isset($params[1]) ? $params[1] : array());
  262.         $this->schema_object = $this->readSchema();
  263.         $this->freeze = $freeze;
  264.     }
  265.    
  266.     //Constructs the table
  267.     public function add($table_name, $params=array()) {
  268.         $this->tbl_name = $table_name;
  269.         $current_tables = $this->readTables();
  270.         if (!empty($current_tables)) {
  271.             $object_array = $current_tables['object_array'];
  272.             $tables = $current_tables['tables'];
  273.             $i = $current_tables['count'];
  274.         } else {
  275.             $i=-1; 
  276.         }
  277.         $tables[$i+1][0][0] = $table_name;
  278.         if (isset($params[0]['phpName']))  {
  279.             $tables[$i+1][0][1] = $params[0]['phpName'];
  280.         }
  281.         if (isset($params[0]['namespace']))  {
  282.             $tables[$i+1][0][2] = $params[0]['namespace'];
  283.         }
  284.         if (isset($params[0]['idMethod']))  {
  285.             $tables[$i+1][0][3] = $params[0]['idMethod'];
  286.         }
  287.         if (isset($params[0]['package']))  {
  288.             $tables[$i+1][0][4] = $params[0]['package'];
  289.         }
  290.         if (isset($params[0]['schema']))  {
  291.             $tables[$i+1][0][5] = $params[0]['schema'];
  292.         }
  293.         if (isset($params[0]['skipSql']))  {
  294.             $tables[$i+1][0][6] = $params[0]['skipSql'];
  295.         }
  296.         if (isset($params[0]['abstract']))  {
  297.             $tables[$i+1][0][7] = $params[0]['abstract'];
  298.         }
  299.         if (isset($params[0]['phpNamingMethod']))  {
  300.             $tables[$i+1][0][8] = $params[0]['phpNamingMethod'];
  301.         }
  302.         if (isset($params[0]['baseClass']))  {
  303.             $tables[$i+1][0][9] = $params[0]['baseClass'];
  304.         }
  305.         if (isset($params[0]['description']))  {
  306.             $tables[$i+1][0][10] = $params[0]['description'];
  307.         }
  308.         if (isset($params[0]['heavyIndexing']))  {
  309.             $tables[$i+1][0][11] = $params[0]['heavyIndexing'];
  310.         }
  311.         if (isset($params[0]['readOnly']))  {
  312.             $tables[$i+1][0][12] = $params[0]['readOnly'];
  313.         }
  314.         if (isset($params[0]['treeMode']))  {
  315.             $tables[$i+1][0][13] = $params[0]['treeMode'];
  316.         }
  317.         if (isset($params[0]['reloadOnInsert']))  {
  318.             $tables[$i+1][0][14] = $params[0]['reloadOnInsert'];
  319.         }
  320.         if (isset($params[0]['reloadOnUpdate']))  {
  321.             $tables[$i+1][0][15] = $params[0]['reloadOnUpdate'];
  322.         }
  323.         if (isset($params[0]['allowPkInsert']))  {
  324.             $tables[$i+1][0][16] = $params[0]['allowPkInsert'];
  325.         }
  326.         $tables[$i+1][1] = array();
  327.         $tables[$i+1][2] = array();
  328.        
  329.         if (isset($params[1]) && !empty($params[1])) {
  330.             if (isset($params[1]['foreignKeys'])) {
  331.                 $tables[$i+1][2][0] = $params[1]['foreignKeys'];
  332.             }
  333.             if (isset($params[1]['indexes'])) {
  334.                 $tables[$i+1][2][0] = $params[1]['indexes'];
  335.             }
  336.             if (isset($params[1]['uniques'])) {
  337.                 $tables[$i+1][2][0] = $params[1]['uniques'];
  338.             }
  339.             if (isset($params[1]['id_method_parameters'])) {
  340.                 $tables[$i+1][2][0] = $params[1]['id_method_parameters'];
  341.             }
  342.             if (isset($params[1]['external_schemas'])) {
  343.                 $tables[$i+1][2][0] = $params[1]['external_schemas'];
  344.             }
  345.         }
  346.         $boolean = $this->freeze ? true : $this->tableExists($table_name);
  347.         $this->added[$table_name] = true;
  348.         return $boolean ? true : $this->build($tables, $table_name);
  349.     }
  350. }
  351.  
  352. class Table extends SchemaBuilder {
  353.    
  354.     //Searches an array of tables and returns the position of the table
  355.     private function tableSearch($tables) {
  356.         $i=0;
  357.         foreach ($tables as $table) {
  358.             $found = reset($table[$i][0][0])==$this->name;
  359.             if ($found) {
  360.                 $key = $i;
  361.             }
  362.             $i++;
  363.         }
  364.         return isset($key) ? $key : false;
  365.     }
  366.    
  367.     //Searches in a table for a column and returns the position of the column
  368.     private function columnSearch($column_name, $table_columns) {
  369.         $i=0;
  370.         foreach ($table_columns as $column) {
  371.             $found = $column['name']==$column_name;
  372.             if ($found) {
  373.                 $key = $i;
  374.             }
  375.             $i++;
  376.         }
  377.         return isset($key) ? $key : false;
  378.     }
  379.    
  380.     //Whether new Columns can be added or not
  381.     public function __construct($instance, $tbl_name=false, $file="schema.xml") {
  382.         $this->SchemaBuilder = $instance;
  383.         $this->allowed = !empty($tbl_name);
  384.         $this->name = $tbl_name;
  385.         $this->dbfile = $file;
  386.         $this->columnKey = isset($this->columnKey) ? $this->columnKey : 0;
  387.     }
  388.    
  389.     //Dynamically extends the Table with a column
  390.     public function __call($column_name, $variables) {
  391.         if($this->allowed) {
  392.             $schema = file_exists($this->dbfile) ? $this->SchemaBuilder->loadXML($this->dbfile) : fopen($this->dbfile, 'w+');
  393.             $all_tables = $this->SchemaBuilder->readTables($schema);
  394.             $table_key = $this->tableSearch(($all_tables['tables']));
  395.                 if (isset($all_tables['tables'][$table_key][1])) {
  396.                     $column_found = $this->columnSearch($column_name, $all_tables['tables'][$table_key][1]);
  397.                 } else {
  398.                     $column_found = false;
  399.                 }
  400.                 if (!is_int($column_found)) {
  401.                     $this->added[$column_name] = true;
  402.                     $column_key = $this->columnKey;
  403.                     $all_tables['tables'][$table_key][1][$column_key]['name'] = $column_name;
  404.                     if (isset($variables[0][1]['phpName'])) {
  405.                         $all_tables['tables'][$table_key][1][$column_key]['phpName'] = $variables[0][1]['phpName'];
  406.                     }
  407.                     if (isset($variables[0][1]['type'])) {
  408.                         $all_tables['tables'][$table_key][1][$column_key]['type'] =  $variables[0][1]['type'];
  409.                     }
  410.                     if (isset($variables[0][1]['required'])) {
  411.                         $all_tables['tables'][$table_key][1][$column_key]['required'] = $variables[0][1]['required'];
  412.                     }
  413.                     if (isset($variables[0][1]['primaryKey'])) {
  414.                         $all_tables['tables'][$table_key][1][$column_key]['primaryKey'] = $variables[0][1]['primaryKey'];
  415.                     }
  416.                     if (isset($variables[0][1]['autoIncrement'])) {
  417.                         $all_tables['tables'][$table_key][1][$column_key]['autoIncrement'] =  $variables[0][1]['autoIncrement'];
  418.                     }
  419.                     if (isset($variables[0][1]['size'])) {
  420.                         $all_tables['tables'][$table_key][1][$column_key]['size'] =  $variables[0][1]['size'];
  421.                     }
  422.                     if (!isset($all_tables['tables'][$table_key][0])) {
  423.                         $all_tables['tables'][$table_key][0] = array();
  424.                     }
  425.                     if (!isset($all_tables['tables'][$table_key][2])) {
  426.                         $all_tables['tables'][$table_key][2] = array();
  427.                     }
  428.                     $this->SchemaBuilder->build($all_tables['tables'], $this->name, $this->added);
  429.                     return $this->columnKey++;
  430.                 } else {
  431.                     return false;
  432.                 }
  433.         } else {
  434.             return false;
  435.         }
  436.     }
  437. }
Advertisement
RAW Paste Data Copied
Advertisement