/**
* Read and parse.
*
+ * @param $schemaPath
* @param string $buildVersion which version of the schema to build
*/
function parse($schemaPath, $buildVersion) {
}
}
+ /**
+ * @param $dbXML
+ *
+ * @return array
+ */
function &getDatabase(&$dbXML) {
$database = array('name' => trim((string ) $dbXML->name));
return $database;
}
+ /**
+ * @param $dbXML
+ * @param $database
+ *
+ * @return array
+ */
function getTables($dbXML, &$database) {
$tables = array();
foreach ($dbXML->tables as $tablesXML) {
return $tables;
}
+ /**
+ * @param $tables
+ * @param $classNames
+ */
function resolveForeignKeys(&$tables, &$classNames) {
foreach (array_keys($tables) as $name) {
$this->resolveForeignKey($tables, $classNames, $name);
}
}
+ /**
+ * @param $tables
+ * @param $classNames
+ * @param $name
+ */
function resolveForeignKey(&$tables, &$classNames, $name) {
if (!array_key_exists('foreignKey', $tables[$name])) {
return;
}
}
+ /**
+ * @param $tables
+ *
+ * @return array
+ */
function orderTables(&$tables) {
$ordered = array();
return $ordered;
}
+ /**
+ * @param $tables
+ * @param $valid
+ * @param $name
+ *
+ * @return bool
+ */
function validTable(&$tables, &$valid, $name) {
if (!array_key_exists('foreignKey', $tables[$name])) {
return TRUE;
return TRUE;
}
+ /**
+ * @param $tableXML
+ * @param $database
+ * @param $tables
+ */
function getTable($tableXML, &$database, &$tables) {
$name = trim((string ) $tableXML->name);
$klass = trim((string ) $tableXML->class);
return;
}
+ /**
+ * @param $fieldXML
+ * @param $fields
+ */
function getField(&$fieldXML, &$fields) {
$name = trim((string ) $fieldXML->name);
$field = array('name' => $name, 'localizable' => $fieldXML->localizable);
$fields[$name] = &$field;
}
+ /**
+ * @param $name
+ *
+ * @return string
+ */
function composeTitle($name) {
$names = explode('_', strtolower($name));
$title = '';
return trim($title);
}
+ /**
+ * @param $primaryXML
+ * @param $fields
+ * @param $table
+ */
function getPrimaryKey(&$primaryXML, &$fields, &$table) {
$name = trim((string ) $primaryXML->name);
$table['primaryKey'] = &$primaryKey;
}
+ /**
+ * @param $indexXML
+ * @param $fields
+ * @param $indices
+ */
function getIndex(&$indexXML, &$fields, &$indices) {
//echo "\n\n*******************************************************\n";
//echo "entering getIndex\n";
$indices[$indexName] = &$index;
}
+ /**
+ * @param $foreignXML
+ * @param $fields
+ * @param $foreignKeys
+ * @param $currentTableName
+ */
function getForeignKey(&$foreignXML, &$fields, &$foreignKeys, &$currentTableName) {
$name = trim((string ) $foreignXML->name);
$foreignKeys[$name] = &$foreignKey;
}
+ /**
+ * @param $foreignXML
+ * @param $dynamicForeignKeys
+ */
function getDynamicForeignKey(&$foreignXML, &$dynamicForeignKeys) {
$foreignKey = array(
'idColumn' => trim($foreignXML->idColumn),
$dynamicForeignKeys[] = $foreignKey;
}
+ /**
+ * @param $key
+ * @param $object
+ * @param null $default
+ *
+ * @return null|string
+ */
protected function value($key, &$object, $default = NULL) {
if (isset($object->$key)) {
return (string ) $object->$key;
return $default;
}
+ /**
+ * @param $attributes
+ * @param $object
+ * @param $name
+ * @param null $pre
+ * @param null $post
+ */
protected function checkAndAppend(&$attributes, &$object, $name, $pre = NULL, $post = NULL) {
if (!isset($object->$name)) {
return;
$this->append($attributes, ' ', trim($value));
}
+ /**
+ * @param $str
+ * @param $delim
+ * @param $name
+ */
protected function append(&$str, $delim, $name) {
if (empty($name)) {
return;