This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
kurs:doctrine_oracle_beipspiel [2012/01/19 11:07] mh created |
kurs:doctrine_oracle_beipspiel [2012/01/19 14:17] mh |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <code> | + | ==== Entities definieren ===== |
+ | <code> | ||
<?php | <?php | ||
// entities/Test.php | // entities/Test.php | ||
Line 18: | Line 19: | ||
return $this->id; | return $this->id; | ||
} | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ==== XML ===== | ||
+ | |||
+ | <code> | ||
+ | <!-- config/xml/Test.dcm.xml --> | ||
+ | <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" | ||
+ | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
+ | xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping | ||
+ | http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> | ||
+ | |||
+ | <entity name="Test" table="tests"> | ||
+ | <id name="id" type="integer"> | ||
+ | <generator strategy="AUTO" /> | ||
+ | </id> | ||
+ | |||
+ | <field name="name" type="string" /> | ||
+ | </entity> | ||
+ | </doctrine-mapping> | ||
+ | </code> | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | |||
+ | <code> | ||
+ | <?php | ||
+ | // bootstrap_doctrine.php | ||
+ | |||
+ | // See :doc:`Configuration <../reference/configuration>` for up to date autoloading details. | ||
+ | use Doctrine\ORM\Tools\Setup; | ||
+ | |||
+ | require_once "Doctrine/ORM/Tools/Setup.php"; | ||
+ | Setup::registerAutoloadPEAR(); | ||
+ | |||
+ | // Create a simple "default" Doctrine ORM configuration for XML Mapping | ||
+ | $isDevMode = true; | ||
+ | $config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode); | ||
+ | // or if you prefer yaml or annotations | ||
+ | //$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/entities"), $isDevMode); | ||
+ | //$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode); | ||
+ | |||
+ | // database configuration parameters | ||
+ | $conn = array( | ||
+ | 'dbname' => 'orcl', | ||
+ | 'user' => 'hr', | ||
+ | 'password' => 'hr', | ||
+ | 'host' => '10.0.2.15', | ||
+ | 'port' => '1521', | ||
+ | 'driver' => 'oci8', | ||
+ | 'charset' => 'NLS_CHARACTERSET', | ||
+ | ); | ||
+ | // obtaining the entity manager | ||
+ | $entityManager = \Doctrine\ORM\EntityManager::create($conn, $config); | ||
+ | </code> | ||
+ | |||
+ | ==== Bootstrap Code ==== | ||
+ | |||
+ | <code> | ||
+ | <?php | ||
+ | // bootstrap.php | ||
+ | |||
+ | require_once "entities/Test.php"; | ||
+ | |||
+ | if (!class_exists("Doctrine\Common\Version", false)) { | ||
+ | require_once "bootstrap_doctrine.php"; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ==== cli-config ==== | ||
+ | |||
+ | <code> | ||
+ | |||
+ | <?php | ||
+ | // cli-config.php | ||
+ | require_once "bootstrap.php"; | ||
+ | |||
+ | $helperSet = new \Symfony\Component\Console\Helper\HelperSet(array( | ||
+ | 'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($entityManager) | ||
+ | )); | ||
+ | </code> | ||
+ | |||
+ | ==== Einfuegen ==== | ||
+ | <code> | ||
+ | |||
+ | <?php | ||
+ | // insert.php | ||
+ | require_once "bootstrap.php"; | ||
+ | |||
+ | $newTest = $argv[1]; | ||
+ | |||
+ | $test = new Test(); | ||
+ | $test->setName($newTest); | ||
+ | |||
+ | $entityManager->persist($test); | ||
+ | $entityManager->flush(); | ||
+ | |||
+ | echo "Created Test with ID " . $test->getId() . "\n"; | ||
+ | </code> | ||
+ | |||
+ | ==== Auslesen ==== | ||
+ | <code> | ||
+ | |||
+ | <?php | ||
+ | |||
+ | require_once "bootstrap.php"; | ||
+ | |||
+ | $dql = "SELECT t FROM Test t"; | ||
+ | |||
+ | $query = $entityManager->createQuery($dql); | ||
+ | $query->setMaxResults(30); | ||
+ | $tests = $query->getResult(); | ||
+ | |||
+ | foreach($tests AS $test) { | ||
+ | ## var_dump($test); | ||
+ | echo $test->getName()."\n"; | ||
} | } | ||
</code> | </code> |