Я работаю с классами Doctrine_Record, которые автоматически загружаются автоматически; но после некоторого чтения я решил, что хотел бы реализовать как Doctrine_Records, так и Custom Table Classes.Zend: автозагрузка как Doctrine_Table, так и Doctrine_Record
Так что я добавил это к моему бутстрапу
$manager->setAttribute(
Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES,
true
);
Который сделал пользовательские таблицы классов работают просто отлично ... но это ломает самозарядные отчеты!
Как сделать автозагрузку?
I.E. новый User.php получает мой класс пользователя Doctrine_Record и Doctrine_Core :: getTable («Пользователь») получает мой пользовательский класс UserTable.
Вот как это выглядело (рабочий), прежде чем я пытался реализации пользовательских таблиц:
public function _initDoctrine() {
require_once 'Doctrine.php';
/*
* Autoload Doctrine Library and connect
* use appconfig.ini doctrine.dsn
*/
$this ->getApplication()
->getAutoloader()
->pushAutoloader(array(
'Doctrine',
'autoload'),
'Doctrine');
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(
Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE,
true
);
$manager->setAttribute(
Doctrine::ATTR_MODEL_LOADING,
Doctrine::MODEL_LOADING_CONSERVATIVE
);
// try these custom tables out!
// $manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true);
$config = $this->getOption('doctrine');
$conn = Doctrine_Manager::connection($config['dsn'], 'doctrine');
return $conn;
// can call flush on the connection to save any unsaved records
}
Благодаря
редактировать:
Позвольте мне уточнить.
Не только пользовательские классы .. Я уже использую пользовательские классы, которые расширяют Doctrine_Record.
class Model_User extends Doctrine_Record {}
$foo = new Model_User;
Большая часть моего приложения в настоящее время работает вокруг этого и не будет меняться в этом отношении.
Однако, я хотел бы ТАКЖЕ использование Custom Tables
class UserTable extends Doctrine_Table {}
$bar = Doctrine_Core::getTable('User');
Но, как только я включаю это (классы пользовательских таблиц) функции для вызова классов Doctrine_Table, использующие суффикс таблицы. Любые классы Doctrine_Record, которые я ранее расширил и вызвал напрямую, перестает работать! Я хочу использовать оба!
См. Мое редактирование, я пытаюсь выполнить как пользовательские классы, так и пользовательские таблицы. Мои пользовательские классы уже работают нормально. –