public function connect()
 {
     if ($this->_connection) {
         return;
     }
     // parse dsn
     $config = $this->_config['connection'];
     $dsn = $this->_config["connection"]["dsn"];
     $dsn_temp = explode(':', $dsn);
     $this->_db_type = $dsn_temp[0];
     foreach (explode(';', $dsn_temp[1]) as $row) {
         $row_temp = explode('=', $row);
         $config[$row_temp[0]] = $row_temp[1];
     }
     // regist namespace-path mapping to fuel as PSR-0 so Symfony\Finder can't find entities normally.
     $proxy_dir = APPPATH . "vendor" . DS . "sakuraiyuta" . DS . "fuel-orientdb" . DS . "tmp" . DS;
     $entity_dir = isset($this->_config["entity_dir"]) ? $this->_config["entity_dir"] : APPPATH . "classes" . DS . "Entity" . DS;
     \Autoloader::add_namespace("Doctrine", $proxy_dir . DS . "/Doctrine" . DS, TRUE);
     \Autoloader::add_namespace("Entity", $entity_dir, TRUE);
     // initialize ODM-Manager
     $parameters = BindingParameters::create("http://{$config['username']}:{$config['password']}@{$config['host']}:{$config['port']}/{$config['dbname']}");
     $binding = new HttpBinding($parameters);
     $reader = new Reader(new ArrayCache());
     $mapper = new Mapper($proxy_dir, $reader);
     $mapper->setDocumentDirectories(array($entity_dir => "Entity"));
     $manager = new Manager($mapper, $binding);
     // Prevent this information from showing up in traces
     unset($config['username'], $config['password']);
     $this->_connection = array("manager" => $manager, "binding" => $binding, "mapper" => $mapper);
     return $this->_connection;
 }
Пример #2
0
<?php

use Symfony\Component\ClassLoader\UniversalClassLoader;
use Doctrine\OrientDB\Binding\HttpBinding;
use Doctrine\OrientDB\Binding\BindingParameters;
use Doctrine\ODM\OrientDB as ODM;
require __DIR__ . '/../autoload.php';
$loader = new UniversalClassLoader();
$loader->registerNamespaces(array('Domain' => __DIR__ . '/../examples/'));
$loader->register();
$parameters = BindingParameters::create('http://*****:*****@127.0.0.1:2480/menu');
$binding = new HttpBinding($parameters);
$mapper = new ODM\Mapper(__DIR__ . '/../examples/proxies');
$mapper->setDocumentDirectories(array(__DIR__ . '/../examples/' => 'Domain'));
$manager = new ODM\DocumentManager($mapper, $binding);
$menus = $manager->getRepository('Domain\\Menu');
foreach ($menus->findAll() as $menu) {
    echo "Menu: ", $menu->getTitle(), "\n";
    foreach ($menu->getLinks() as $link) {
        // object inheriting from Link
        echo "Link \"{$link->getTitle()}\" ====>>> {$link->getLink()}\n";
    }
}