Anotações e Persistencia, no PHP.

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