У меня есть следующий класс «Пользователь»:
<?php
use GraphAware\Neo4j\OGM\Annotations as OGM;
/**
* @OGM\Node(label="User")
*/
class User {
/**
* @OGM\GraphID
* @var int
*/
protected $id;
/**
* @OGM\Property(type="string")
* @var string
*/
protected $username;
/*
* @OGM\Property(type="string")
* @var string
*/
protected $password;
/*
* @param string $username
* @param string $password
*/
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
/*
* @return string
*/
public function getUsername() {
return $this->username;
}
/*
* @return string
*/
public function getPassword() {
return $this->password;
}
/*
* @param string $password
*/
public function setPassword($password) {
$this->password = $password;
}
}
Я пытаюсь работать с ним, как показано:
>>> require_once 'User.php'
=> 1
>>> use GraphAware\Neo4j\OGM\EntityManager;
=> null
>>> $manager = EntityManager::create('http://neo4j:superstrongpassword@localhost:7474');
=> GraphAware\Neo4j\OGM\EntityManager {#171
+"annotationDriver": GraphAware\Neo4j\OGM\Mapping\AnnotationDriver {#178},
}
>>> $x = new User('foo', 'bar');
=> User {#217}
>>> $manager->persist($x)
=> null
>>> $manager->flush()
=> null
Однако, если я выполню следующий запрос в Neo4j «браузер», я просто вижу, как создается следующее:
$ match (x) return x
Rows
x: username: foo
Создание других свойств, по-видимому, пропущено.
Я полагаю, что упускаю что-то довольно простое; в чем проблема с приведенным выше кодом?
Доклблоки для аннотации пароля @Property отсутствуют *
:
/*
* @OGM\Property(type="string")
* @var string
*/
protected $password;
Первая строка: /*
должно быть с двумя звездами /**
/**
* @OGM\Property(type="string")
* @var string
*/
Других решений пока нет …