User Tools

Site Tools


kurs:doctrine_oracle_beipspiel

Entities definieren

<?php
// entities/Test.php
class Test {
  protected $id;
  protected $name;

  public function getName() {
        return $this->name;
  }

  public function setName($name) {
        $this->name = $name;
  }

  public function getId() {
        return $this->id;
  }
}

XML

<!-- 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>

Konfiguration

<?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);

Bootstrap Code

<?php
// bootstrap.php

require_once "entities/Test.php";

if (!class_exists("Doctrine\Common\Version", false)) {
    require_once "bootstrap_doctrine.php";
}

cli-config

<?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)
));

Einfuegen

<?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";

Auslesen

<?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";
}
kurs/doctrine_oracle_beipspiel.txt · Last modified: 2014/09/10 21:22 (external edit)