diff options
| -rw-r--r-- | framework/Wsat/TWsatARGenerator.php | 111 | ||||
| -rw-r--r-- | framework/Wsat/TWsatService.php | 30 | ||||
| -rw-r--r-- | framework/Wsat/pages/TWsatGenerateAR.php | 31 | ||||
| -rw-r--r-- | framework/Wsat/pages/TWsatHome.php | 11 | ||||
| -rw-r--r-- | framework/Wsat/pages/TWsatLogin.php | 20 | ||||
| -rw-r--r-- | framework/Wsat/pages/TWsatScaffolding.php | 11 | 
6 files changed, 121 insertions, 93 deletions
diff --git a/framework/Wsat/TWsatARGenerator.php b/framework/Wsat/TWsatARGenerator.php index ed873358..a4846306 100644 --- a/framework/Wsat/TWsatARGenerator.php +++ b/framework/Wsat/TWsatARGenerator.php @@ -9,7 +9,8 @@   * @since 3.3   * @package Wsat   */ -class TWsatARGenerator { +class TWsatARGenerator +{      /**       * Gets the current Db connection, the connection object is obtained from @@ -49,7 +50,8 @@ class TWsatARGenerator {       */      private $uq_chars = array('[', ']', '"', '`', "'"); -    function __construct() { +    function __construct() +    {          $ar_manager = TActiveRecordManager::getInstance();          $this->_conn = $ar_manager->getDbConnection();          $this->_conn->Active = true; @@ -60,37 +62,42 @@ class TWsatARGenerator {       * Destructor.       * Disconnect the db connection.       */ -    public function __destruct() { +    public function __destruct() +    {          if ($this->_conn !== null)              $this->_conn->Active = false;      } -    public function setOpFile($op_file_namespace) { +    public function setOpFile($op_file_namespace) +    {          $op_file = Prado::getPathOfNamespace($op_file_namespace); -        if (empty($op_file)) { +        if (empty($op_file))              throw new Exception("You need to fix your output folder namespace."); -        } -        if (!is_dir($op_file)) { +        if (!is_dir($op_file))              mkdir($op_file, 0777, true); -        }          $this->_op_file = $op_file;      } -    public function setClasPrefix($_clas_prefix) { +    public function setClasPrefix($_clas_prefix) +    {          $this->_clas_prefix = $_clas_prefix;      } -    public function setClassSufix($_clas_sufix) { +    public function setClassSufix($_clas_sufix) +    {          $this->_class_sufix = $_clas_sufix;      }  //-----------------------------------------------------------------------------          // <editor-fold defaultstate="collapsed" desc="Main APIs"> -    public function generate($tableName) { +    public function generate($tableName) +    {          $tableInfo = $this->_gateway->getTableInfo($this->_conn, $tableName); -        if (count($tableInfo->getColumns()) === 0) { +        if (count($tableInfo->getColumns()) === 0) +        {              throw new Exception("Unable to find table or view $tableName in " . $this->_conn->getConnectionString() . "."); -        } else { +        } else +        {              $properties = array();              foreach ($tableInfo->getColumns() as $field => $column)                  $properties[] = $this->generateProperty($field, $column); @@ -103,20 +110,26 @@ class TWsatARGenerator {          file_put_contents($output, $class);      } -    public function generateAll() { -        foreach ($this->_getAllTableNames() as $tableName) { -            if ($tableName == "pradocache") { +    public function generateAll() +    { +        foreach ($this->_getAllTableNames() as $tableName) +        { +            if ($tableName == "pradocache") +            {                  continue;              }              $this->generate($tableName);          }      } -    public function buildRelations() { +    public function buildRelations() +    {          $this->_relations = array(); -        foreach ($this->_getAllTableNames() as $table_name) { +        foreach ($this->_getAllTableNames() as $table_name) +        {              $tableInfo = $this->_gateway->getTableInfo($this->_conn, $table_name); -            foreach ($tableInfo->getForeignKeys() as $fk_data) { +            foreach ($tableInfo->getForeignKeys() as $fk_data) +            {                  $owner_table = $fk_data["table"];                  $slave_table = $table_name;                  $fk_prop = key($fk_data["keys"]); @@ -142,25 +155,28 @@ class TWsatARGenerator {  //-----------------------------------------------------------------------------      // <editor-fold defaultstate="collapsed" desc="Common Methods"> -    private function _getAllTableNames() { +    private function _getAllTableNames() +    {          $command = $this->_conn->createCommand("Show Tables");          $dataReader = $command->query();          $dataReader->bindColumn(1, $table);          $tables = array(); -        while ($dataReader->read()) { +        while ($dataReader->read())              $tables[] = $table; -        }          return $tables;      } -    private function _getProperClassName($tableName) { +    private function _getProperClassName($tableName) +    {          $table_name_words = str_replace("_", " ", strtolower($tableName));          $final_conversion = str_replace(" ", "", ucwords($table_name_words));          return $this->_clas_prefix . $final_conversion . $this->_class_sufix;      } -    public function renderAllTablesInformation() { -        foreach ($this->_getAllTableNames() as $table_name) { +    public function renderAllTablesInformation() +    { +        foreach ($this->_getAllTableNames() as $table_name) +        {              echo $table_name . "<br>";              $tableInfo = $this->_gateway->getTableInfo($this->_conn, $table_name); @@ -173,7 +189,8 @@ class TWsatARGenerator {  //----------------------------------------------------------------------------- -    protected function generateProperty($field, $column) { +    protected function generateProperty($field, $column) +    {          $prop = '';          $name = '$' . $field; @@ -184,40 +201,47 @@ class TWsatARGenerator {          return $prop;      } -    private function _renderRelations($tablename) { -        if (!isset($this->_relations[$tablename])) { +    private function _renderRelations($tablename) +    { +        if (!isset($this->_relations[$tablename]))              return ""; -        } +          $code = "\tpublic static \$RELATIONS = array ("; -        foreach ($this->_relations[$tablename] as $rel_data) { +        foreach ($this->_relations[$tablename] as $rel_data)              $code .= "\n\t\t'" . $rel_data["prop_name"] . "' => array(" . $rel_data["rel_type"] . ", '" . $rel_data["ref_class_name"] . "', '" . $rel_data["prop_ref"] . "'),"; -        } +          $code = substr($code, 0, -1);          $code .= "\n\t);";          return $code;      } -    private function _buildSmartToString($tableInfo) { +    private function _buildSmartToString($tableInfo) +    {          $code = "\tpublic function __toString() {";          $property = "throw new THttpException(500, 'Not implemented yet.');"; -        try { -            foreach ($tableInfo->getColumns() as $column) { -                if (isset($column->IsPrimaryKey) && $column->IsPrimaryKey) { +        try +        { +            foreach ($tableInfo->getColumns() as $column) +            { +                if (isset($column->IsPrimaryKey) && $column->IsPrimaryKey)                      $property = str_replace($this->uq_chars, "", $column->ColumnName); -                } elseif ($column->PHPType == "string" && $column->DBType != "date") { +                elseif ($column->PHPType == "string" && $column->DBType != "date") +                {                      $property = str_replace($this->uq_chars, "", $column->ColumnName);                      break;                  }              } -        } catch (Exception $ex) { -             +        } catch (Exception $ex) +        { +            Prado::trace($ex->getMessage());          }          $code .= "\n\t\treturn \$this->$property;";          $code .= "\n\t}";          return $code;      } -    protected function generateClass($properties, $tablename, $classname, $toString) { +    protected function generateClass($properties, $tablename, $classname, $toString) +    {          $props = implode("\n", $properties);          $relations = $this->_renderRelations($tablename);          $date = date('Y-m-d h:i:s'); @@ -227,8 +251,8 @@ class TWsatARGenerator {   * Auto generated by PRADO - WSAT on $date.   * @author prado_user_name                  */ -class $classname extends TActiveRecord { -                 +class $classname extends TActiveRecord  +{         	const TABLE='$tablename';  $props @@ -241,11 +265,8 @@ $relations  $toString  } -?>  EOD;      }  // </editor-fold> -} - -?> +}
\ No newline at end of file diff --git a/framework/Wsat/TWsatService.php b/framework/Wsat/TWsatService.php index f2d852ea..5aa86dbd 100644 --- a/framework/Wsat/TWsatService.php +++ b/framework/Wsat/TWsatService.php @@ -33,29 +33,33 @@   *    * Warning: You should only use Wsat in development mode.   */ -class TWsatService extends TPageService { +class TWsatService extends TPageService +{      private $_pass = '';  //-----------------------------------------------------------------------------     -    public function init($config) { -        if ($this->getApplication()->getMode() === TApplicationMode::Performance || $this->getApplication()->getMode() === TApplicationMode::Normal) { +    public function init($config) +    { +        if ($this->getApplication()->getMode() === TApplicationMode::Performance || $this->getApplication()->getMode() === TApplicationMode::Normal)              throw new TInvalidOperationException("You should not use Prado WSAT in any of the production modes."); -        } -        if (empty($this->_pass)) { + +        if (empty($this->_pass))              throw new TConfigurationException("You need to specify the Password attribute."); -        } +          $this->setDefaultPage("TWsatHome");          $this->_startThemeManager();          parent::init($config);      } -    public function getBasePath() { +    public function getBasePath() +    {          $basePath = Prado::getPathOfNamespace("System.Wsat.pages");          return realpath($basePath);      } -    private function _startThemeManager() { +    private function _startThemeManager() +    {          $themeManager = new TThemeManager;          $themeManager->BasePath = "System.Wsat.themes";          $url = Prado::getApplication()->getAssetManager()->publishFilePath(Prado::getPathOfNamespace('System.Wsat')); @@ -65,14 +69,14 @@ class TWsatService extends TPageService {          $this->setThemeManager($themeManager);      } -    public function getPassword() { +    public function getPassword() +    {          return $this->_pass;      } -    public function setPassword($_pass) { +    public function setPassword($_pass) +    {          $this->_pass = $_pass;      } -} - -?> +}
\ No newline at end of file diff --git a/framework/Wsat/pages/TWsatGenerateAR.php b/framework/Wsat/pages/TWsatGenerateAR.php index d5934686..14e14983 100644 --- a/framework/Wsat/pages/TWsatGenerateAR.php +++ b/framework/Wsat/pages/TWsatGenerateAR.php @@ -11,32 +11,40 @@   */  Prado::using("System.Wsat.TWsatARGenerator"); -class TWsatGenerateAR extends TPage { +class TWsatGenerateAR extends TPage +{ -    public function generate($sender) { -        if ($this->IsValid) { +    public function generate($sender) +    { +        if ($this->IsValid) +        {              $table_name = $this->table_name->Text;              $output_folder_ns = $this->output_folder->Text;              $class_prefix = $this->class_prefix->Text;              $class_sufix = $this->class_sufix->Text; -            try { +            try +            {                  $ar_generator = new TWsatARGenerator();                  $ar_generator->setOpFile($output_folder_ns);                  $ar_generator->setClasPrefix($class_prefix);                  $ar_generator->setClassSufix($class_sufix); -                if ($this->build_rel->Checked) { +                if ($this->build_rel->Checked) +                {                      $ar_generator->buildRelations();                  } -                if ($table_name != "*") { +                if ($table_name != "*") +                {                      $ar_generator->generate($table_name); -                } else { +                } else +                {                      $ar_generator->generateAll();                  }                  $this->feedback_panel->CssClass = "green_panel";                  $this->generation_msg->Text = "The code has been generated successfully."; -            } catch (Exception $ex) { +            } catch (Exception $ex) +            {                  $this->feedback_panel->CssClass = "red_panel";                  $this->generation_msg->Text = $ex->getMessage();              } @@ -44,12 +52,11 @@ class TWsatGenerateAR extends TPage {          }      } -    public function preview($sender) { +    public function preview($sender) +    {  //        $ar_generator = new TWsatARGenerator();  //        $ar_generator->renderAllTablesInformation();          throw new THttpException(500, "Not implemented yet.");      } -} - -?>
\ No newline at end of file +}
\ No newline at end of file diff --git a/framework/Wsat/pages/TWsatHome.php b/framework/Wsat/pages/TWsatHome.php index 035dd7c6..c5291ed7 100644 --- a/framework/Wsat/pages/TWsatHome.php +++ b/framework/Wsat/pages/TWsatHome.php @@ -9,12 +9,9 @@   * @since 3.3   * @package Wsat.pages   */ -  Prado::using("System.Wsat.TWsatARGenerator"); -class TWsatHome extends TPage { - - -} - -?>
\ No newline at end of file +class TWsatHome extends TPage +{ +     +}
\ No newline at end of file diff --git a/framework/Wsat/pages/TWsatLogin.php b/framework/Wsat/pages/TWsatLogin.php index 7c4570af..4b3ba0c1 100644 --- a/framework/Wsat/pages/TWsatLogin.php +++ b/framework/Wsat/pages/TWsatLogin.php @@ -9,28 +9,30 @@   * @since 3.3   * @package Wsat.pages   */ +class TWsatLogin extends TPage +{ -class TWsatLogin extends TPage { - -    public function login() { -        if ($this->IsValid) { +    public function login() +    { +        if ($this->IsValid) +        {              $this->Session["wsat_password"] = $this->getService()->getPassword();              $authManager = $this->Application->getModule('auth');              $url = $authManager->ReturnUrl; -            if (empty($url)) { +            if (empty($url)) +            {                  $url = $this->Service->constructUrl('TWsatHome');              }              $this->Response->redirect($url);          }      } -    public function validatePassword($sender, $param) { +    public function validatePassword($sender, $param) +    {          $config_pass = $this->getService()->getPassword();          $user_pass = $this->password->Text;          $param->IsValid = $user_pass === $config_pass;      } -} - -?>
\ No newline at end of file +}
\ No newline at end of file diff --git a/framework/Wsat/pages/TWsatScaffolding.php b/framework/Wsat/pages/TWsatScaffolding.php index 2fc036ad..b8e28b03 100644 --- a/framework/Wsat/pages/TWsatScaffolding.php +++ b/framework/Wsat/pages/TWsatScaffolding.php @@ -9,12 +9,9 @@   * @since 3.3   * @package Wsat.pages   */ -  Prado::using("System.Wsat.TWsatARGenerator"); -class TWsatScaffolding extends TPage { - - -} - -?>
\ No newline at end of file +class TWsatScaffolding extends TPage +{ +     +}
\ No newline at end of file  | 
