1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| protected function _initDoctrine()
{
//on met Doctrine en autoload
$this->getApplication()
->getAutoloader()
->pushAutoloader ( array ('Doctrine', 'autoload' ) );
spl_autoload_register(array('Doctrine', 'modelsAutoload'));
//on récupère une instance de Doctrine
$manager = Doctrine_Manager::getInstance ();
//permet de valider automatiquement l'intégrité des données
//ce qui veut dire que l'on ne peut pas mettre une variable de type string
//dans une variable de type int.
$manager->setAttribute (Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
//lAUTO_ACCESSOR_OVERRIDE va nous permettre de personnaliser lassignation de données.
$manager->setAttribute ( Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true );
//Doctrine permet de personnaliser également les classes de table en permettant
//de créer des méthodes propres à une table.
//Ce paramètre permet de charger le fichier contenant nos méthodes personnalisées.
$manager->setAttribute (
Doctrine::ATTR_MODEL_LOADING,
Doctrine::MODEL_LOADING_CONSERVATIVE
);
//on permet le chargement des classes table
$manager->setAttribute ( Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true );
//on récupère toutes les options doctrine du fichier app.ini
$doctrineConfig = $this->getOption('doctrine');
//on récupère la variable doctrine.models_path du fichier app.ini
//afin d'avoir le répertoire des models
//pour que Doctrine les charge
Doctrine::loadModels($doctrineConfig['models_path']);
//on récupère la connexion à mysql et on la nomme doctrine
$conn = Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine');
//je sais plus ce que sa veut dire, mais il le faut
$conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUM,true);
//on définit la sortie encodée en UTF-8
$conn->setCharset('utf8');
$conn->setCollate('utf8_general_ci');
//on retourne la connexion
return $conn;
} |
Partager