Catálogo de Produtos em Flash – Parte 1


Catálogo de Produtos em Flash – Parte 1

Após um bom período sem colocar novidades no ar, estou voltando para poder contribui com o crescimento da comunidade. Estamos bem atarefados criandos novas coisas para vocês, usuários do Portal, por isso, aguardem excelentes novidades para este próximo ano ;-) .

Veremos nesta série de colunas, como gerar um simples catálogo de produtos, utilizando PHP, MySQL e Flash. Para fazer a interface PHP e MySQL, utilizaremos um framework chamado Lumine. Para que os exemplos funcionem corretamente, faça primeiro a análise dos pré-requisitos abaixo:

  • Servidor Web com PHP 4.3.1 ou superior;
  • Servidor MySQL 4.0 ou superior, com suporte a tabelas InnoDB;
  • Framework Lumine.
  • Flash MX 2004 ou Flash 8.

Após analisados e confirmados estes pré-requisitos, vamos começar pela parte do banco de dados.

Gerando as tabelas no banco de dados

Abaixo segue a instrução SQL para criarmos nossas tabelas no banco de dados:

[SQL]
Create table coluna_categoria (
idcategoria Int NOT NULL AUTO_INCREMENT,
nome Varchar(255) NOT NULL,
Primary Key (idcategoria)) TYPE = InnoDB;

Create table coluna_produto (
idproduto Int NOT NULL AUTO_INCREMENT,
idcategoria Int NOT NULL,
nome Varchar(255) NOT NULL,
descricao Text NOT NULL,
valor Float NOT NULL,
foto Varchar(255),
destaque Bool NOT NULL,
data_cadastro Datetime NOT NULL,
Primary Key (idproduto)) TYPE = InnoDB;

Alter table coluna_produto add Index IX_Relationship1 (idcategoria);
Alter table coluna_produto add Foreign Key (idcategoria) references coluna_categoria (idcategoria) on delete cascade on update cascade;
[/SQL]

Obs: as tabelas tem o prefixo coluna_ porque não posso criar outros bancos de dados em meu servidor, e para que os exemplos dados neste artigo funcionem corretamente, eles deverão ser feitos como mostrado ;-)

Gerando as classes do Lumine em PHP

Após criar as tabelas no seu banco de dados com as instruções acima, vamos criar, através de engenharia reversa, as classes e mapeamentos através do Framework Lumine. Este framework serve para trabalharmos com os registros do banco de dados como se fossem objetos, minimizando drásticamente a uilização de instruções SQL que devemos digitar. Em sua versão atual, este framework suporta engenharia reversa para os bancos de dados MySQL e PostgreSQL.

Baixando o pacote Lumine, descompacte-o em um diretório que você tenha acesso via seu browser, para que possa acessar o arquivo de engenharia reversa. Após descompactado, você verá que o mesmo possui um arquivo chamado lumine_reverse.php. Acesse este arquivo através de seu browser para gerarmos a engenharia reversa.

Acima você podem conferir o exemplo que utlizei para este artigo. Vamos analisar cada item deste formulário.

Atenção: para que a engenharia reversa funcione corretamente, é necessário que o usuário WEB tenha acesso de escrita na pasta informada em Class-Path (chmod 0777)!

  • Class-Path: raiz da sua aplicação (site). Deve ser a pasta local física de onde está o seu site, por exemplo /www/seusite/public_html para sistemas *nix e c:/www/seusite/public_html para sistemas Windows. Note que para Windows é utilizada a barra, e não contra-barras (\);
  • Host: nome do host onde está localizado o banco de dados;
  • Banco de dados: nome do banco de dados;
  • Dialeto: Existem vários dialetos disponíveis, mas nesta versão os suportados atualmente são os que possuem prefixo mysql* e posgres*. Como iremos utilizar tabelas InnoDB, utilize o dialeto mysqlt, que suporta InnoDB e transações;
  • Porta: porta de conexão com o banco;
  • Usuário: nome de usuário para conexão;
  • Senha: senha para conexão com o banco;
  • Pacote: pacote onde estarão as suas classes em PHP que serão criadas através da engenharia reversa. Ela deve ser escrita em padrão de pacotes Java (por exemplo, br.com.hufersil.classes irá gerar c:/www/seusite/public_html/br/com/hufersil/classes). Neste exemplo, estou usando o valor entidades.
  • Mapeamentos: idêntico ao item pacotes, porém esta é a pasta onde serão armazenados os mapeamentos em XML. Neste exemplo, estou utilizando o valor entidades.mapeamentos.
  • Nome do arquivo de cache: quando se utiliza um grande número de tabelas, é interessante gerar um arquivo de cache para que Lumine não precise ficar lendo os seus arquivos XML a cada chamada. Isso trará um grande ganho em performance. Atenção: o usuário web DEVE ter o direito de escrita sobre o arquivo (chmod 0777).
  • Remover prefixo das tabelas: em nosso exemplo, estamos utilizando prefixo nas tabelas, que é o coluna_. Caso você não utilize prefixos, deixe esta opção em branco;
  • Tipo de arquivo de configuração: nesta versão de Lumine, você poder gerar um arquivo XML para configuração ou um arquivo PHP. Neste exemplo utilizaremos o PHP;
  • Criar controles básicos: irá criar controles básicos para que possamos manipular nossas classes de maneira bem simples. Estes formulários devem ser utilizados somente para testes com o banco, e não para produção de sites para clientes.

Após definidas as configurações acima, clique em Iniciar

Após o processo, Lumine irá criar os arquivos na pasta informada em class-path.

O arquivo de configuração com o banco é o arquivo chamado lumine-conf.php, que estará dentro da pasta inforamda no item class-path.

Primeiro contato com Lumine

Após geradas as classes, vamos criar um arquivo para inserção de teste de uma categoria. Salve este arquivo na mesma pasta onde se encontra o arquivo lumine-conf.php.

<?php
// incluindo o arquivo de configuração do banco
include_once("lumine-conf.php");
// incluindo o arquivo de configuração do Lumine
include_once("pasta/do/lumine/LumineConfiguration.php");
// instanciando uma nova configuração do Lumine
$lumineConfiguration = new LumineConfiguration( $lumineConfig );

// Importando a classe de Categoria
Util::Import('entidades.Categoria');

// criando um novo objeto de categoria
$objCategoria = new Categoria;
// atribuindo um nome a esta categoria
$objCategoria->nome = 'Eletronicos';
// salvando no banco
echo $objCategoria->save();
?>

Caso linha 17 mostre algum resultado (maior que zero) significa que o objeto foi salvo corretamente no banco de dados. Como vocês puderam notar, não escrevemos nenhuma linha de instruções SQL para que o objeto fosse salvo no banco de dados!

Na próxima coluna, iremos desenvolver uma aplicação simples para cadastrarmos categorias e produtos.

@braços e fique com Deus!

Autor: Hugo Ferreira da Silva – Administrador do Portal MXSTUDIO

Qualquer dúvida envie um e-mail para hugo@mxstudio.com.br ou acesse nosso fórum

Escrito por hugo on dezembro 12, 2006. Arquivado em Flash. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

1 resposta a Catálogo de Produtos em Flash – Parte 1

  1. Hugo, tem como voce me mandar um exemplo pronto para ver como ficou o seu ? obrigado … abraço!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>