Ben Doktrini (MongoDB ile) 2 ODM kullanıyorum.
Benim Belge modeli:
class Users_Model_User
{
public $id;
public $username;
public $password;
public $myRuntimeProperty = 'some value';
}
YAML Benim Belge haritalama:
Users_Model_User:
db: my_db
collection: users
fields:
id:
fieldName: id
id: true
username:
fieldName: username
type: string
password:
fieldName: password
type: string
Benim test kodu:
$user = new Users_Model_User;
$user->username = 'hello';
$user->password = 'world';
$this->dm->persist($user);
$this->dm->flush();
$user = $this->dm->findOne('Users_Model_User', array('username' => 'hello'));
Zend_Debug::dump($user);
Benim sonuç:
object(Users_Model_User)#81 (4) {
["id"] => string(24) "4c1d5eb68ead0eb332000000"
["username"] => string(5) "hello"
["password"] => string(5) "world"
["myRuntimeProperty"] => string(10) "some value"
}
"MyRuntimeProperty" Benim belgeyle kaydedilir almaz böylece nasıl bunu yapabilirim? Benim modelleri modeli yeniden aldığında her şeyi berbat ediyor "_propertyChangedListeners" gibi şeyler de dahil olmak üzere tüm özellikleri ile kaydediliyor.