quarta-feira, 23 de outubro de 2013

Persistência fácil com PHP

Persistência de dados em PHP pode ser muito fácil se você utilizar o framework certo. RedBean e NotORM são dois exemplos de como salvar e resgatar registros no banco de dados sem muitas linhas de código e sem dor de cabeça.


"persistência de dados, na computação, refere-se ao armazenamento não-volátil de dados, por exemplo, o armazenamento em um dispositivo físico como um disco rígido. Quando se grava um arquivo no disco, por exemplo, o dado está sendo "eternizado", ou seja, deixa de ficar volátil na memória RAM e passa a ser escrito num dispositivo que armazena a informação de modo que ela não desapareça facilmente."


Manter extensas e repetitivas queries SQL dentro do código é coisa do passado. Códigos como este abaixo não são mais necessários devido a grande quantidade de bibliotecas que resolvem este tipo de problema.

 $query = 'SELECT user_id FROM users WHERE user_id = 1';  
 $result = mysql_query($query);  
 $array = mysql_fetch_assoc($result);  


Frameworks ORM como Doctrine e Propel são soluções conhecidas por quem trabalha com PHP. Porém, existem ferramentas mais simples e que se comportam bem em projetos menores. Duas delas são o NotORM e o RedBean.



O RedBeam é rápido e de fácil configuração. Abaixo alguns exemplos de código:

Configurando (Setup):

   require('rb.php');  
   R::setup('mysql:host=localhost;  
     dbname=mydatabase','user','password');  

Salvando dados no banco:

 $book = R::dispense('book');  
 $book->title = 'Gifted Programmers';  
 $book->author = 'Charles Xavier';  
 $id = R::store($book);  

Carregando registro por id (find by id):

 $book = R::load('book', $id);  



O NotORM  é uma ferramenta mais antiga e também uma boa solução, temos um exemplo de como configurá-lo e recuperar dados:

 include "NotORM.php";  
 $pdo = new PDO("mysql:dbname=software");  
 $db = new NotORM($pdo);
  
 foreach ($db->application() as $application) { // get all applications  
   echo "$application[title]\n"; // print application title  
 }  

Persistindo dados com o NotORM:

 $array = array(  
   "title" => "NotORM",  
   "author_id" => null,  
   "created" => new NotORM_Literal("NOW()"),  
 );  
 $row = $db->$tableName()->insert($array);  



Estes são apenas dois exemplos de muitas de bibliotecas que existem para facilitar a implementação da camada de persistência.



Nenhum comentário:

Postar um comentário