/** * Настройки 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'); }
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')); }