Исключение модуля загрузки доктрины - PullRequest
0 голосов
/ 01 декабря 2009

Я новичок в учении. Я создал файл начальной загрузки, подобный следующему:

require_once(dirname(__FILE__)."/../conf/general.php");
require_once(dirname(__FILE__).'/Doctrine/lib/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));

$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL); 
$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true); #for accessor  overriding
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true); #in order to be able to use the XTable classes
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,    Doctrine_Core::MODEL_LOADING_CONSERVATIVE); #to conservatively load files
$manager->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_ALL); 

$dsn = "mysql:dbname=".DBNAME.";host=".DBHOST;
$dbh = new PDO( $dsn, DBUSERNAME, DBPASS );
$conn = Doctrine_Manager::connection( $dbh ); 
Doctrine_Core::loadModels('doc_models'); #In order to be able to work with models

php bootstrap.php
команда работает так же, как и ожидалось. Но у меня есть файл X.php в каталоге Y, и мне нужен файл bootstrap.php в X.php, но когда я запустил X.php в каталоге Y как
php X.php
, я получил следующее исключение:
Doctrine_Exception: You must pass a valid path to a directory containing Doctrine models in /path_to_directory_of_bootstrap_file/Doctrine/lib/Doctrine/Core.php on line 635

Теперь, как я могу исправить эту проблему?

Кстати, когда я помещаю X.php и bootstrap.php в один каталог, он работает как положено. Я также пытался использовать абсолютные пути, но это не решило мою проблему. Я тестирую на Ubuntu 9.10 и установил доктрину от груши. Версия доктрины 1.2.0.

Ответы [ 2 ]

1 голос
/ 02 апреля 2013

Я думаю, что эта ошибка возникает, когда доктрина ожидает, что существуют некоторые модельные каталоги. Ошибка также возникает, если вы пытаетесь сгенерировать SQL из schema.yml ПЕРЕД созданием классов модели. Когда классовые модели создаются, они создают кучу каталогов, и я думаю, что вы их пропустили.

1 голос
/ 01 декабря 2009

Вы пытались использовать абсолютные пути, когда требуется? Realpath может помочь вам создать эти пути.

...