【问题标题】:What are the options available for Doctrine's Doctrine_Core::generateModelsFromDb method?Doctrine 的 Doctrine_Core::generateModelsFromDb 方法有哪些可用选项?
【发布时间】:2010-04-09 05:36:15
【问题描述】:

Doctrine 1.2 有一个名为 generateModelFromDb 的方法documented here,它为数据库中的所有表生成模型文件。

此函数接受一个可选的第三个参数,其中包含一组“选项”,以在生成模型时使用,其细节没有记录。我可以在此处指定哪些选项?

【问题讨论】:

    标签: php doctrine doctrine-1.2


    【解决方案1】:

    Doctrine/Import/Schema 默认值的完整列表:

    protected $_options = array('packagesPrefix'        =>  'Package',
                                'packagesPath'          =>  '',
                                'packagesFolderName'    =>  'packages',
                                'suffix'                =>  '.php',
                                'generateBaseClasses'   =>  true,
                                'generateTableClasses'  =>  false,
                                'generateAccessors'     =>  false,
                                'baseClassPrefix'       =>  'Base',
                                'baseClassesDirectory'  =>  'generated',
                                'baseClassName'         =>  'Doctrine_Record');
    

    【讨论】:

      【解决方案2】:

      使用 Doctrine1.2.4 -

      该列表中缺少一些 - 它们很重要!

      'pearStyle'             => true,
      'classPrefix'           => '',
      'classPrefixFiles'      => false,
      

      我在为 Zend Framework 项目生成类时使用了它,示例脚本:

      <?php
      
      /**
       * Doctrine CLI script
       */
      
      define('APPLICATION_ENV', 'development');
      
      define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
      
      set_include_path(implode(PATH_SEPARATOR, array(
          realpath(APPLICATION_PATH . '/../library'),
          realpath(APPLICATION_PATH . '/../library/Doctrine'),
          get_include_path(),
      )));
      
      require_once 'Zend/Application.php';
      
      // Create application, bootstrap, and run
      $application = new Zend_Application(
          APPLICATION_ENV,
          APPLICATION_PATH . '/config/default.ini'
      );
      
      $application->getBootstrap()->bootstrap('doctrine');
      
      Doctrine::generateModelsFromDb(
          APPLICATION_PATH . '/modules/default/models/DbTable', 
          array('db1'),
          array(
              'pearStyle'            => true,
              'generateTableClasses' => true,
              'baseClassesDirectory' => '',
              'classPrefix'=> 'Model_DbTable_',
              'classPrefixFiles' => false,
              'baseClassPrefix' => 'Generated_'
           )
      );
      

      【讨论】:

      • 当然很高兴我发布了这个......忘记了我把这个信息放在哪里,再次需要它! :)
      【解决方案3】:

      我见过的最好的是:

      http://www.doctrine-project.org/documentation/manual/1_2/ru/defining-models

      ...您可以尝试从页面中收集任何特定于数据类型的“选项”。我还没有遇到比这更全面的东西。 API 文档似乎假设可能的选项是显而易见的。

      【讨论】:

        【解决方案4】:

        这看起来很有前途: 来自here

         // Generate your models from an existing database
         Doctrine::generateModelsFromDb('/path/to/generate/models', array('connection_name'),   $options);
        
         // Array of options and the default values
         $options = array('packagesPrefix'        =>  'Package',
                          'packagesPath'          =>  '',
                          'packagesFolderName'    =>  'packages',
                          'suffix'                =>  '.php',
                          'generateBaseClasses'   =>  true,
                          'baseClassesPrefix'     =>  'Base',
                          'baseClassesDirectory'  =>  'generated',
                          'baseClassName'         =>  'Doctrine_Record');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-18
          • 1970-01-01
          • 1970-01-01
          • 2019-04-08
          • 1970-01-01
          • 1970-01-01
          • 2020-01-21
          相关资源
          最近更新 更多