spartaksun/orientdb-entity

Symfony2 OrientDb entity manager

dev-master 2015-08-18 09:05 UTC

This package is auto-updated.

Last update: 2024-04-19 00:36:22 UTC


README

Install

composer require spartaksun/orientdb-entity

Example of services.yml:

services:
    orient:
        class: PhpOrient\PhpOrient
        public: false
        properties:
            hostname:   'localhost'
            port:        2424
            username:   'root'
            password:   'root'
    orient.em:
        class: spartaksun\OrientDb\EntityManager
        arguments: [@orient, "your_orient_db_name"]
        properties:
            classMap:
                "Country": YourBundle\Entity\Country

Define entities by extending spartaksun\OrientDb\Entity class. Use internal validators or define your own by extending abstract spartaksun\OrientDb\Validators\Validator:

/**
 * Country entity
 * @property $first_name
 * @property $last_name
 */
class Country extends spartaksun\OrientDb\Entity
{
    /**
     * {@inheritdoc}
     */
    public function validators()
    {
        return [
            'name' => [
                [
                    spartaksun\OrientDb\Validators\StringValidator::class, 
                    ['min' => 3, 'max' => 32],
                ],
            ],
        ];
    }
}

Usage in Symfony2 controller:

$this->get('orient.em');
// Init repository
$repository = $this->get('orient.em')
        ->getRepository( Country::class );
// Get all countries
$countries = $repository->findAll();
foreach($countries as $country) {
     echo $country->name . "\n";
}
// Add new country
$country = new Country();
$country->name = 'Ukraine';
if($repository->persist($country)) {
    $rid = $country->getRid();
} else {
    var_dump($country->getErrors());
}
// find one
$country = $repository->find('name=?', 'Ukraine')