Então eu já falei sobre anotações , e também sobre persistência. Vamos juntar as peças?
Um pacote em PHP para leitura de classes com anotações e geração da configuração do ORM a partir dessa. Por enquanto o ORM é o Outlet, pretendo ainda usar o Doctrine. Para annotation usa o addendum.
Então, como usar?
$config = new PersistenceAnnotation('mysql:host=localhost;dbname=encontros','encontros','123');
$config->addClass('User')->addClass('Encounter')->addClass('Device');
// Starts the Persistence Framework
Outlet::init($config->getConfig());
$outlet = Outlet::getInstance();
$outlet->createProxies();
E, é claro, os modelos, devidamente anotados:
/** @Persistence('devices') */
class Device {
/** @Persistence(type='int',props={
pk=true,autoIncrement=true}) */
private $id ;
/** @Persistence() */
private $mac ;
/** @Persistence() */
private $time ;
/** @Persistence() */
private $user_id ;
/** @Persistence({'many-to-one','User',{key='user_id',plural='user'}}) */
private $user
// resto da classe
}
Basicamente é isso, e então continuar a usar o framework normalmente, mas sem escrever os arquivos de configurações do mesmo.
Pode-se obter o código no meu pacote no github.