Doctrine und Agavi

Doctrine Librarys

Als erstes sollte man sich die Librarys von Doctrine besorgen. Ich selber speichere alle externen librarys im Verzeichnis %project_dir%/libs ab.

svn co http://svn.doctrine-project.org/tags/1.1.0/lib/ libs/doctrine

nun haben wir schon einmal die Librarys im Verzeichnis %project_dir%/lib/doctrine.

Konfiguration in Agavi

Damit Agavi nun diese auch läd müssen sie zur autoload.xml hinzugefügt werden.


/path/to/project/libs/doctrine/Doctrine.php

Zum anderen sollte in settings.xml use_database auf true gesetzt werden, damit Agavi überhaupt zu Datenbanken verbindet. Als nächstes ist nun die database.xml an der Reihe. Die hier angegebene Konfiguration sollte immer an die eingenen Wünsche angepasst werden!




	
		

			
				
					mysql://:@/
					
						
							true
							LENGTHS
							true
						
					
					
						
							conservative
						
					
					%core.lib_dir%/doctrine
				
			

		
	
	

Entwicklungsumgebung

Hier habe ich mir angewöhnt die Sachen für die DB Entwicklung unter dev/db ab zuspeichern. Hier sollten folgende Verzeichnisse erstellt werden.

mkdir -p dev/db/{data,data/fixtures,data/sql,migrations,models,schema}

Zudem erzeugen wir in dev/db noch die Datei doctrine.php, welches wir zur Konfiguration der Doctrine CLI verweden werden. Auch hier gilt, bitte anpassen!

getDatabaseConnection();

$dir = dirname(__FILE__);

$config = array(
	'data_fixtures_path'  => AgaviConfig::get('doctrine.fixture_dir', $dir . '/data/fixtures'),
	'models_path' => AgaviConfig::get('core.lib_dir') . '/doctrine',
	'migrations_path' =>  AgaviConfig::get('doctrine.migration_dir', $dir . '/migrations'),
	'sql_path' => AgaviConfig::get('doctrine.migration_dir', $dir . '/data/sql'),
	'yaml_schema_path' =>  AgaviConfig::get('doctrine.schema_dir', $dir . '/schema/schema.yml'),
	'generate_models_options' => array(
		'suffix' => '.class.php'
	)
);

// Configure Doctrine Cli
$cli = new Doctrine_Cli($config);
$cli->run($args);
?>

Kommen wir nun zur letzten kleine Hürde. Wir brauchen noch eine entsprechende Datei die uns die doctrine.php von oben aufruft. Diese platziere ich immer in dev/ und sie sieht so aus.

#!/usr/bin/env php

Noch ein abschließendes chmod +x doctrine und man kann los legen.

Schreibe einen Kommentar