spartaksun/orientdb-entity

Symfony2 OrientDb 实体管理器

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

This package is auto-updated.

Last update: 2024-09-19 01:31:33 UTC


README

安装

composer require spartaksun/orientdb-entity

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

通过扩展 spartaksun\OrientDb\Entity 类来定义实体。使用内部验证器或通过扩展抽象类 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],
                ],
            ],
        ];
    }
}

Symfony2 控制器中的使用

$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')