/**
  * Настройки Doctrine
  */
 public function configureDoctrine(Doctrine_Manager $manager)
 {
     // Legacy database
     $manager->setAttribute(Doctrine_Core::ATTR_QUOTE_IDENTIFIER, true);
     // $manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, false);
     $manager->setAttribute(Doctrine_Core::ATTR_DEFAULT_TABLE_CHARSET, 'utf8');
     $manager->setAttribute(Doctrine_Core::ATTR_DEFAULT_TABLE_COLLATE, 'utf8_general_ci');
     $manager->setAttribute(Doctrine_Core::ATTR_DEFAULT_TABLE_TYPE, 'INNODB');
     // Глобальный кастомный Query класс
     // @see http://www.doctrine-project.org/projects/orm/1.2/docs/manual/configuration/en#configure-query-class
     $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CLASS, 'myBaseQuery');
     // SoftDelete
     $manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true);
     // что бы использовать IF | CASE и проч. SQL-полезняшки
     $manager->setAttribute(Doctrine::ATTR_PORTABILITY, Doctrine::PORTABILITY_ALL ^ Doctrine::PORTABILITY_EXPR);
     // Кастомный гидратор
     $manager->registerHydrator('FetchPair', 'Doctrine_Hydrator_FetchPair');
 }
Ejemplo n.º 2
0
 public function configureDoctrine(Doctrine_Manager $manager)
 {
     Doctrine_Core::debug(sfConfig::get('dm_debug'));
     /*
      * Configure inheritance
      */
     $manager->setAttribute(Doctrine_Core::ATTR_TABLE_CLASS, 'myDoctrineTable');
     $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CLASS, 'myDoctrineQuery');
     $manager->setAttribute(Doctrine_Core::ATTR_COLLECTION_CLASS, 'myDoctrineCollection');
     /*
      * Configure charset
      */
     $manager->setCharset('utf8');
     $manager->setCollate('utf8_unicode_ci');
     /*
      * Configure hydrators
      */
     $manager->registerHydrator('dmFlat', 'Doctrine_Hydrator_dmFlatDriver');
     /*
      * Configure builder
      */
     sfConfig::set('doctrine_model_builder_options', array('generateTableClasses' => true, 'baseClassName' => 'myDoctrineRecord', 'baseTableClassName' => 'myDoctrineTable', 'suffix' => '.class.php'));
 }