Produtos Divertidos? Eu Compraria!

O desenvolvedor é um blog sobre desenvolvimento web, não tratando apenas de programação mas também compartilhando experiências, métodos, debates e tendências da internet.

O Desenvolvedor é um blog de www.andafter.org
Assinar o Feed RSS
Lumine - mapeamento de banco de dados para PHP

Lumine - mapeamento de banco de dados para PHP

Muito bomEste texto foi classificado como Muito bom
Em Internet, Programação, Softwares, Variedades
Por Chris Benseler
9 de Setembro de 2008

Um ótimo framework para persistência de dados em PHP

RSS Acompanhe O Desenvolvedor por Feeds!


Quando entrei no meu atual emprego, quase 4 anos atrás, uma cosia que eu não conhecia mesmo era esse lance de frameworks.
Talvez pela mistura de ser novato em programação web (conhecia bem html/css e um pouco de php) e ter trabalhado com programação c/c++, onde os programadores prezam muito o fato de se conhecer como as coisas funcionam - e não só fazer funcionar.

No fundo, eu concordo: não acho o ideal já partir de cara para o uso de frameworks, sem nem saber como as coisas são feitas na unha. Até porque, quando aparece algum problema no desenvolvimento, na maior parte das vezes temos que mudar algo no framework, ou fazer um work-around indo lá no meio do código - ou seja, fazer o trabalho sujo de catar milho e escrever código.

Um dos frameworks que mais me chamou atenção foi o Hibernate. É um framework para aplicações java, para persistêcnia de dados. Basicamente, você persiste objetos (sim, objetos, aqueles, do conceito da Orientação a Objetos) em bancos de dados sem ter que se preocupar em como isso vai funcionar; ao invés de ter que ficar escrevendo querys SQL de consulta, inserção, deleção, etc... você chama apenas um método específico que os objetos herdam, e o framework faz todo o trabalho.
Qual a vantagem? Bancos de dados SQL possuem uma estrutura totalmente diferente da forma como os dados existem na orientação a objetos. Fazer código para manipular os dados é custoso - tanto em termos de tempo quanto de trabalho. Quando o framework se propõe a fazer isso, o ganho de produtividade é gigantesco. Sem falar que, com isso, mudar de um banco de dados para o outro é bem mais simples, pois normalmente frameworks desse tipo possuem tal suporte.

Depois de ter conhecido esse framework, fiquei um tempo pensando se não tinha nada parecido em PHP (que é a linguagem server-side para web que mais conheço). Foi quando me deparei com o Lumine. Ele surgiu depois que um programador PHP conheceu também o Hibernate e sentiu necessidade de fazer o mesmo para PHP.
*não conheço o autor desse framework, mas já deixo aqui meus parabéns pra ele
A configuração dele é muito fácil: você escolhe qual banco de dados vai usar (por enquanto pode usar MySQL e PostGree) e define as strings de conexão (login, senha, etc...).
Depois, faz o mapeamento das classes com relação às tabelas do banco. Ou seja, você específica que uma classe (por exemplo Pessoa) estará relacionada a uma tabela do bando (chamada tbl_pessoa) e que os atributos (por exemplo nome, idade, sexo) estarão relacionados a colunas específicas da tabela.
Feito isso, você pode usar os métodos específicos para manipulação dos dados, como inserir uma nova Pessoa:

 
// recupera o arquivo que faz a configuração de lumine

// descrita anteriormente em "inicializando a configuração"

require_once ´configuracao.php´;

// Importa a classe pessoa

Util::Import(´entidades.Pessoa´);

// instancia a classe pessoa

$pessoa = new Pessoa;

// atribui propriedades

$pesso->nome = ´Hugo´;

$pessoa->idade = 23;

$pessoa->cpf = ´12345678912´;

// persiste o objeto no banco, usando insert

$pessoa->insert();

 

Ou recuperar do banco:

 
// instancia um novo objeto

$pessoa = new Pessoa;

// recupera o objeto com código 1 pela primeira chave primária da classe

$total = $pessoa->get( 1 );

 

Fica muito mais fácil pois você deixa de ter que misturar as querys SQL no meio do seu código PHP; o desacoplamento é muito maior, e a legibilidade é bem melhor: faz muito mais sentido você ver no código Pessoa->insert() do que toda aquela linguiçona SQL...
Minha sugestão? Quando tiver um tempo, baixe esse framework e experimente. Explore. Há uma curva de aprendizado, claro, e no começo a produtividade cairá um pouco. Mas, depois, a agilidade que ele te dá valerá a pena :)

O que você achou do texto?

  • Muito ruim
  • Ruim
  • Regular
  • Bom
  • Muito bom
Sua opinião é o que faz a comunidade funcionar, colabore para isso!

Tags: framework, php, hibernate, lumine, sql

Enviar para um amigo
Você pode comentar, assinar o feed, conhecer mais sobre o autor e ajudar a divulgar este artigo em sua ferramenta favorita através dos botões abaixo.
  • Rec6
  • ueba
  • linkk
  • dihitt
  • linkloko
  • websapiens
  • linkto
  • Eu curti

Comentários

Guilherme Serrano

9/9/2008 12:36:00

Bah, vi isso desenvovido em um fórum, era um miniframework desenvovlido por um usuário que funciona de maneira muito parecida com essa mas em ASP.

Não testei - até porque eu não vi graaandes vantagens na ferramenta que ele havia feito, eu tinha uma dúvida que talvez alguém aí saiba responder, será que esses frameworks não causam um processamento maior no servidor?

[Responder este comentário]

Chris Benseler

9/9/2008 15:03:00

Um framework em si não causa maior processamento, Guilherme. Depende, na verdade, de como ele foi desenvolvido.

Inclusive pode acontecer até o contrário, pois se o framework é para persistência de dados, imagina-se que ele foi feito por desenvolvedores que conhecem bem o assunto, e otimizam o código para.
Por exemplo, tenho certeza que se eu consigo fazer coisas em SQL se der uma boa estudada, mas demoraria muito tempo pra conseguir fazer algo com a qualidade desse framework em termos de performance...

Luciano

9/9/2008 22:26:00

Este framework se parece com o Django no aspecto de funcionabilidade, sou desenvolvedor php, atualmente estou estudando python e o framework Django, nunca tinha trabalhado com framework, sua utilização é muito acessíveis e muito produtiva, mas frisando o que o artigo descreve é muito importante o programador conhecer a linguagem antes de utilizar um framework.

[Responder este comentário]
Deixe seu comentário!

Nome (requerido)

E-mail (requerido - não será divulgado)

URL

Quanto é 3 + 1?




web tracker