web/lib/Zend/Tool/Project/Provider/DbTable.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
--- a/web/lib/Zend/Tool/Project/Provider/DbTable.php	Thu Mar 21 17:31:31 2013 +0100
+++ b/web/lib/Zend/Tool/Project/Provider/DbTable.php	Thu Mar 21 19:50:53 2013 +0100
@@ -15,29 +15,29 @@
  * @category   Zend
  * @package    Zend_Tool
  * @subpackage Framework
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: DbTable.php 20851 2010-02-02 21:45:51Z ralph $
+ * @version    $Id: DbTable.php 24593 2012-01-05 20:35:02Z matthew $
  */
 
 /**
  * @category   Zend
  * @package    Zend_Tool
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
  */
-class Zend_Tool_Project_Provider_DbTable 
+class Zend_Tool_Project_Provider_DbTable
     extends Zend_Tool_Project_Provider_Abstract
     implements Zend_Tool_Framework_Provider_Pretendable
 {
-    
+
     protected $_specialties = array('FromDatabase');
-    
+
     /**
      * @var Zend_Filter
      */
     protected $_nameFilter = null;
-    
+
     public static function createResource(Zend_Tool_Project_Profile $profile, $dbTableName, $actualTableName, $moduleName = null)
     {
         $profileSearchParams = array();
@@ -47,25 +47,25 @@
         }
 
         $profileSearchParams[] = 'modelsDirectory';
-        
+
         $modelsDirectory = $profile->search($profileSearchParams);
-        
+
         if (!($modelsDirectory instanceof Zend_Tool_Project_Profile_Resource)) {
             throw new Zend_Tool_Project_Provider_Exception(
                 'A models directory was not found' .
                 (($moduleName) ? ' for module ' . $moduleName . '.' : '.')
                 );
         }
-        
+
         if (!($dbTableDirectory = $modelsDirectory->search('DbTableDirectory'))) {
             $dbTableDirectory = $modelsDirectory->createResource('DbTableDirectory');
         }
-        
+
         $dbTableFile = $dbTableDirectory->createResource('DbTableFile', array('dbTableName' => $dbTableName, 'actualTableName' => $actualTableName));
-        
+
         return $dbTableFile;
     }
-    
+
     public static function hasResource(Zend_Tool_Project_Profile $profile, $dbTableName, $moduleName = null)
     {
         $profileSearchParams = array();
@@ -75,20 +75,20 @@
         }
 
         $profileSearchParams[] = 'modelsDirectory';
-        
+
         $modelsDirectory = $profile->search($profileSearchParams);
-        
+
         if (!($modelsDirectory instanceof Zend_Tool_Project_Profile_Resource)
             || !($dbTableDirectory = $modelsDirectory->search('DbTableDirectory'))) {
             return false;
         }
-        
+
         $dbTableFile = $dbTableDirectory->search(array('DbTableFile' => array('dbTableName' => $dbTableName)));
-        
+
         return ($dbTableFile instanceof Zend_Tool_Project_Profile_Resource) ? true : false;
     }
-      
-    
+
+
     public function create($name, $actualTableName, $module = null, $forceOverwrite = false)
     {
         $this->_loadProfile(self::NO_PROFILE_THROW_EXCEPTION);
@@ -97,14 +97,14 @@
         if (preg_match('#[_-]#', $name)) {
             throw new Zend_Tool_Project_Provider_Exception('DbTable names should be camel cased.');
         }
-        
+
         $originalName = $name;
         $name = ucfirst($name);
-        
+
         if ($actualTableName == '') {
             throw new Zend_Tool_Project_Provider_Exception('You must provide both the DbTable name as well as the actual db table\'s name.');
         }
-        
+
         if (self::hasResource($this->_loadedProfile, $name, $module)) {
             throw new Zend_Tool_Project_Provider_Exception('This project already has a DbTable named ' . $name);
         }
@@ -112,10 +112,10 @@
         // get request/response object
         $request = $this->_registry->getRequest();
         $response = $this->_registry->getResponse();
-        
+
         // alert the user about inline converted names
         $tense = (($request->isPretend()) ? 'would be' : 'is');
-        
+
         if ($name !== $originalName) {
             $response->appendContent(
                 'Note: The canonical model name that ' . $tense
@@ -124,7 +124,7 @@
                 array('color' => array('yellow'))
                 );
         }
-        
+
         try {
             $tableResource = self::createResource($this->_loadedProfile, $name, $actualTableName, $module);
         } catch (Exception $e) {
@@ -142,38 +142,43 @@
             $this->_storeProfile();
         }
     }
-    
+
+    /**
+     * @param string $module        Module name action should be applied to.
+     * @param bool $forceOverwrite  Whether should force overwriting previous classes generated
+     * @return void 
+     */
     public function createFromDatabase($module = null, $forceOverwrite = false)
     {
         $this->_loadProfile(self::NO_PROFILE_THROW_EXCEPTION);
-        
+
         $bootstrapResource = $this->_loadedProfile->search('BootstrapFile');
-        
+
         /* @var $zendApp Zend_Application */
         $zendApp = $bootstrapResource->getApplicationInstance();
-        
+
         try {
             $zendApp->bootstrap('db');
         } catch (Zend_Application_Exception $e) {
             throw new Zend_Tool_Project_Provider_Exception('Db resource not available, you might need to configure a DbAdapter.');
             return;
         }
-        
+
         /* @var $db Zend_Db_Adapter_Abstract */
         $db = $zendApp->getBootstrap()->getResource('db');
-        
+
         $tableResources = array();
         foreach ($db->listTables() as $actualTableName) {
-            
+
             $dbTableName = $this->_convertTableNameToClassName($actualTableName);
-            
+
             if (!$forceOverwrite && self::hasResource($this->_loadedProfile, $dbTableName, $module)) {
                 throw new Zend_Tool_Project_Provider_Exception(
                     'This DbTable resource already exists, if you wish to overwrite it, '
                     . 'pass the "forceOverwrite" flag to this provider.'
                     );
             }
-            
+
             $tableResources[] = self::createResource(
                 $this->_loadedProfile,
                 $dbTableName,
@@ -181,11 +186,11 @@
                 $module
                 );
         }
-        
+
         if (count($tableResources) == 0) {
             $this->_registry->getResponse()->appendContent('There are no tables in the selected database to write.');
         }
-        
+
         // do the creation
         if ($this->_registry->getRequest()->isPretend()) {
 
@@ -202,10 +207,10 @@
 
             $this->_storeProfile();
         }
-        
-        
+
+
     }
-    
+
     protected function _convertTableNameToClassName($tableName)
     {
         if ($this->_nameFilter == null) {
@@ -213,8 +218,8 @@
             $this->_nameFilter
                 ->addFilter(new Zend_Filter_Word_UnderscoreToCamelCase());
         }
-        
+
         return $this->_nameFilter->filter($tableName);
     }
-    
+
 }
\ No newline at end of file