Pages

Subscribe:

Ads 468x60px

Labels

30/07/2014

Persistencia Objeto Relacional com framework Doctrine ORM PHP

Objeto mapeador relacional (ORM) para PHP que fica no topo de uma poderosa camada de abstração de banco de dados (DBAL). Uma das suas principais características é a opção para escrever consultas de banco de dados em um dialeto SQL proprietário orientado a objetos chamado Doctrine Query Language (DQL), inspirado em hiberna HQL. Isso fornece aos desenvolvedores uma alternativa poderosa ao SQL que mantém a flexibilidade sem a necessidade de código desnecessária duplicação.

Encontra-se atualmente em sua versão estável 2.3 e pode ser estudado através do site:
 

http://www.doctrine-project.org/

Um bom link para baixar versões anteriores segue aqui:

http://www.doctrine-project.org/downloads/

Para entendermos um pouco de como funciona este Framework vamos fazer um experimento de teste.

Um requisito inicial para que tudo funcione corretamente é ter instalado na sua maquina o gerenciador de dependências Composer.

Tendo o Composer já instalado vamos para este exemplo usar e baixar a versão do Doctrine 1.2.4:

Por padrão temos de colocar em nossa pasta no servidor Apache+PHP+Mysql uma pasta para o Doctrine, uma para os modelos (models) e uma para os arquivos do site (site).

Criei no banco de dados Mysql uma tabela para exemplo de nome "motocicleta":

---------------------------------------------------------
CREATE TABLE IF NOT EXISTS `motocicleta` (
  `id` int(22) NOT NULL,
  `modelo` varchar(50) NOT NULL,
  `ano` varchar(4) NOT NULL,
  `fabricante` int(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

---------------------------------------------------------
Criaremos dois arquivos na pasta models:

bootstrap.php
----------------------------------------------------------------------------
 <?php
//4:24
require '../doctrine2/Doctrine.php';

spl_autoload_register(array('Doctrine', 'autoload'));
spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));

$manager = Doctrine_Manager::getInstance();

try {
  // Insira aqui os dados de sua conexão
  $conn = Doctrine_Manager::connection('mysql://root:@localhost/doctrine');

  $manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,
Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
  $manager->setAttribute(Doctrine_Core::ATTR_EXPORT, Doctrine_Core::EXPORT_ALL);

  $profiler = new Doctrine_Connection_Profiler();
  $manager->setListener($profiler);

} catch (Doctrine_Manager_Exception $e) {
  print $e->getMessage();
}

Doctrine_Core::loadModels('../models');
?>
----------------------------------------------------------------------------


build-models.php
----------------------------------------------------------------------------
 <?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
require 'bootstrap.php';

set_time_limit(90);

$modelsPath = '../models';
$title = 'Modelos gerados com sucesso!';
$msg = '';

try {
    Doctrine::generateModelsFromDb(realpath($modelsPath));
} catch (Doctrine_Import_Builder_Exception $e) {
    $title = 'Falha ao gerar modelos!';
    $msg = $e->getMessage();
}

print $title . "\n" . $msg;
?>
----------------------------------------------------------------------------

Estes dois arquivos serão responsáveis pela configuração do ambiente Doctrine e da abstração do banco.  Para testarmos se tudo deu certo iremos através do navegador executar o arquivo criado de nome "build-models.php", caso tenha dado tudo certo a mensagem será:

Agora podemos conferir na pasta do projeto (models) os arquivos que o Framework criou de abstração do banco que são:



Observe que será criada uma pasta dentro de '/models/' de nome 'generated' com os arquivo de classe abstrata BaseMotocicleta.php e fora da pasta 'generated' teremos a classe que fará herdará dela os métodos, a classe de nome 'Motocicleta.php'.

Este exemplo e a continuidade do projeto podem ser estudados em vídeos no blog do  nosso amigo http://www.rafaelwendel.com.

Espero que tenham gostado e até logo.

25/07/2014

Gerando Hot Spot no Google Maps Facilmente

Olá, para quem está precisando inserir em seu site o Hot Spot de localização do seu estabelecimento em seu site com o Google Maps este site facilita a sua vida:

https://www.mapbuildr.com/buildr

Observe o painel de cadastro das informações de localização como é simples de implementar:



Clicando-se em ADD e inserindo as informações necessárias e salvando podemos ver como fica o resultado final:







  

Veja como fica bem personalizado as informações de seu hot spot Google Maps:

 
 Ao final de todo o processo você já pode gerar o código para inserir em seu site ou blog.  Lembre-se de se cadastrar no serviço do Google Maps e Gerar sua API Key e Map Element ID.
Essa foi a sugestão do Bruno.

Até logo.