Outlet ORM – PHP – Parte 1, Configurando
Boa noite,
Estou a falar do Outlet-ORM, acesse.
Outlet is an open source object-to-relational mapping tool for PHP.

- Outlet ORM – Logo
Ele difere de outras soluções ORM para PHP, já que prevê a persistência transparente e discreto, ele utiliza uma abordagem semelhante à hibernação em Java, utilizando objetos proxy.
Depois de utilizar em alguns projetos, resolvi criar este Post para mostrar como ele funciona, um mini tutorial.
1 passo – CONFIGURAÇÃO, Crie um arquivo com o seguinte conteúdo:
return array(
‘connection’ => array(
‘dsn’ => ‘mysql:host=myserver.com;dbname=mydb’,
‘username’ => ‘user’,
‘password’ => ‘pass’,
‘dialect’ => ‘mysql’
),
‘classes’ => array(
‘Categoria’ => array(
‘table’ => ‘categoria’,
‘props’ => array(
‘ID’ => array(‘id’, ‘int’, array(‘pk’=>true, ‘autoIncrement’=>true)),
‘Nome’ => array(‘nome’, ‘varchar’)
),
‘associations’ => array(
array(‘one-to-many’, ‘Produto’, array(‘key’=>’ID’))
),’useGettersAndSetters’ => true
),
‘Produto’ => array(
‘table’ => ‘produto’,
‘props’ => array(
‘ID’ => array(‘id’, ‘int’, array(‘pk’=>true, ‘autoIncrement’=>true)),
‘Nome’ => array(‘nome’, ‘varchar’)
),
‘associations’ => array(
array(‘many-to-one’, ‘Categoria’, array(‘key’=>’ID’))
),’useGettersAndSetters’ => true
)
)
);
Neste array a chave connection define a conexão com o banco de dados, o Outlet aceita, Mysql, Postgres, SQLite e SQL Server.
Está configuração permite você definir que a classe Categoria e Produto represente as tabelas no banco de dados.o parametro ‘useGettersAndSetters’ => true, indica que os campos serão retornados utilizando metodos get/set
2 – Criando as Classes Categoria e Produto
class Categoria{
private $ID;
private $Nome;
private $Produtos;
public function getId(){ return $this->ID; }
public function setId( $ID ){ $this->ID = $ID; }
public funciton getNome(){ return $this->Nome; }
public function setNome( $nome ) { $this->Nome = $nome; }
public function setProdutos( $produtos ){ $this->Produtos = $produtos; }
public function getProdutos( ){ return $this->Produtos; }
}
E para Produtos
Agora é só iniciar o Outlet
require_once( “arquivo_com_objetos.php” ); // arquivo com as classes que foi criado com as definições das tabelas
Outlet::init(include ‘outlet-configuracao.php’); // arquivo de configuracao que voce criou
$outlet = Outlet::getInstance();
$outlet->createProxies();
PRÓXIMO POST, VOU MOSTRAR COMO INTERAGIR COM OS OBJETOS, FAZER UM SELECT, INSERT, UPDATE E DELETE.