From bd341e6469cbd49a35711b732386dc56a3c59ed0 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 22 Oct 2014 18:03:30 -0500 Subject: Scaffolding 5% --- framework/Wsat/TWsatBaseGenerator.php | 71 +++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 framework/Wsat/TWsatBaseGenerator.php (limited to 'framework/Wsat/TWsatBaseGenerator.php') diff --git a/framework/Wsat/TWsatBaseGenerator.php b/framework/Wsat/TWsatBaseGenerator.php new file mode 100644 index 00000000..7f81f503 --- /dev/null +++ b/framework/Wsat/TWsatBaseGenerator.php @@ -0,0 +1,71 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2014 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @since 3.3 + * @package Wsat + */ +Prado::using('System.Data.Common.TDbMetaData'); + +class TWsatBaseGenerator +{ + + /** + * @return TDbMetaData for retrieving metadata information, such as + * table and columns information, from a database connection. + */ + protected $_dbMetaData; + + /** + * Output folder where AR classes will be saved. + */ + protected $_opFile; + + function __construct() + { + if (!class_exists("TActiveRecordManager", false)) + throw new Exception("You need to enable the ActiveRecord module in your application configuration file."); + $ar_manager = TActiveRecordManager::getInstance(); + $_conn = $ar_manager->getDbConnection(); + $_conn->Active = true; + $this->_dbMetaData = TDbMetaData::getInstance($_conn); + } + + public function setOpFile($op_file_namespace) + { + $op_file = Prado::getPathOfNamespace($op_file_namespace); + if (empty($op_file)) + throw new Exception("You need to fix your output folder namespace."); + if (!is_dir($op_file)) + mkdir($op_file, 0777, true); + $this->_opFile = $op_file; + } + + public function renderAllTablesInformation() + { + foreach ($this->getAllTableNames() as $table_name) + { + echo $table_name . "
"; + $tableInfo = $this->_dbMetaData->getTableInfo($table_name); + echo "Table info:" . "
"; + echo "
";
+                        print_r($tableInfo);
+                        echo "
"; + } + } + + public function getAllTableNames() + { + $tableNames = $this->_dbMetaData->findTableNames(); + $index = array_search('pradocache', $tableNames); + array_splice($tableNames, $index, 1); + return $tableNames; + } + +} + +?> -- cgit v1.2.3