Frage
Ich bin neu in Lehre. Ich habe eine Bootstrap-Datei wie die folgenden:
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.phpBefehl funktioniert wie erwartet. Aber ich habe eine Datei X.php unter Verzeichnis Y und i erfordern bootstrap.php Datei in X.php, aber wenn ich die X.php im Verzeichnis Y wie
php X.phplief bekam ich die folgende Ausnahme:
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
Nun, wie kann ich das beheben dieses Problem?
BTW, wenn ich X.php und bootstrap.php im selben Verzeichnis es wie erwartet funktioniert. Ich habe auch versucht mit absoluten Pfaden zu verlangen, aber dies nicht mein Problem zu lösen. Ich teste auf Ubuntu 9.10 und Lehre von Birne installiert. Lehre Version ist 1.2.0.
Lösung
Haben Sie versucht, absolute Pfade während erfordern mit? Realpath können Sie diese Pfade helfen erstellen.
Andere Tipps
Ich denke, dieser Fehler ausgelöst wird, wenn Lehre einiger Modelle Verzeichnisse zu existieren erwartet. Der Fehler tritt auch auf, wenn Sie SQL aus einem schema.yml zu erzeugen versuchen, bevor Sie die Modellklassen aufgebaut haben. Wenn die Modellklassen gebaut werden sie eine Reihe von Verzeichnissen erstellen und es ist diese, dass ich glaube, Sie fehlen.