Escolar Documentos
Profissional Documentos
Cultura Documentos
ou
Orientaes Gerais
Iniciamos agora o nosso projeto de final de curso: criar uma loja virtual
utilizando Orientao a Objetos e MVC.
Antes vamos alguns esclarecimentos:
1) Ser apresentada uma arquitetura nestes slides, preciso us-la?
No! Ela serve apenas como base. Se achar melhor, pode criar sua
loja virtual do zero, usando os padres e arquiteturas.
2) Posso simplesmente copiar o esqueleto da loja virtual e
entregar?
No, at porque trata-se de um esqueleto. A idia que voc
implemente tudo o que foi visto neste curso e no anterior.
3) Preciso me preocupar com o layout da loja?
No. O importante a funcionalidade.
O projeto
Um sistema de loja virtual pode ser um projeto bem complexo.
No faltam exemplos de grandes lojas que realizam boa parte
de suas vendas apenas pela internet:
http://www.saraiva.com.br
http://www.submarino.com.br
http://www.americanas.com.br
http://www.comprafacil.com.br
Conhecer estes cases pode ser importante para a criao de
sua loja!
Arquitetura: Backend
admin.php
Requisio HTTP
AdminController
Carrinho
Compras
Livros
Usurios
Login
Resposta HTTP
View
topo.tpl.php
index.tpl.php
rodape.tpl.php
Arquitetura: Frontend
index.php
Requisio HTTP
FrontController
Carrinho
Compras
Livros
Usurios
Login
View
Resposta HTTP
topo.tpl.php
index.tpl.php
rodape.tpl.php
carrinho.tpl.php
listar.tpl.php
logar.tpl.php
Estrutura de arquivos
/var/www/loja
admin.php
index.php
bootstrap.php
config.php
app/
AdmController.php
FrontController.php
model/
Carrinho.php
Compras.php
Livros.php
Usuarios.php
View.php
lib/
Banco.php
Login.php
view/
admin/
topo.tpl.php
index.tpl.php
rodape.tpl.php
livros/
inserir.tpl.php
alterar.tpl.php
usuarios/
inserir.tpl.php
alterar.tpl.php
front/
topo.tpl.php
index.tpl.php
rodape.tpl.php
compras/
carrinho.tpl.php
livros/
listar.tpl.php
usuarios/
logar.tpl.php
Configurando o banco
1. Altere o arquivo config.php colocando as credenciais de
acesso ao banco de dados que voc criou.
<?php
$config = array(
'driver'
=>
'host'
=>
'database' =>
'user'
=>
'pass'
=>
);
'mysql',
'localhost',
'loja',
'loja',
'123456'
Configurando o banco
2. Acesse o MySQL:
# mysql -u root -p
Configurando o banco
7. Crie as tabelas de acordo com o arquivo banco.sql:
mysql> CREATE TABLE `livros`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`isbn` varchar(20) NOT NULL,
`autor` varchar(50) NOT NULL,
`titulo` varchar(100) NOT NULL,
`preco` float NOT NULL,
`sumario` text NOT NULL,
PRIMARY KEY (`id`)
);
mysql> INSERT INTO `livros` (`id`, `isbn`, `autor`, `titulo`, `preco`, `sumario`)
VALUES (1, '0973862149', 'Davey Shafik e Ben Ramsey', 'Zend PHP 5
Certification Study Guide', 35.95, 'The second edition of the popular
Zend PHP 5 Certification Study developers who wish to take the exam.');
mysql> INSERT INTO `livros` (`id`, `isbn`, `autor`, `titulo`, `preco`, `sumario`)
VALUES (2, '9780973862188', 'Ivo Jansch', 'Guide to Enterprise PHP
Development', 39.95, 'Whether you are running a large scale web app
in a PHP-based ... for you and your development team.');
mysql> INSERT INTO `livros` (`id`, `isbn`, `autor`, `titulo`, `preco`, `sumario`)
VALUES (3, '321321321', 'Z', 'Fulano', 29.9, 'asdasdasdasd');
10
Configurando o banco
(continuao...)
mysql> CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(25) NOT NULL,
`senha` varchar(40) NOT NULL,
`admin` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
);
mysql> INSERT INTO `usuarios` (`id`, `nome`, `senha`, `admin`)
VALUES (1, 'admin', '123456', 1);
mysql> INSERT INTO `usuarios` (`id`, `nome`, `senha`, `admin`)
VALUES (2, 'fulano', '654321', 0);
11
Configurando o banco
8. Testando para ver se est tudo ok:
mysql> show tables;
mysql> select * from livros;
mysql> select * from usuarios;
12
Acessando a loja...
13
Diretrizes
Agora a hora de pensar no que precisa ou no ter na sua loja:
preciso um painel de controle?
Sim, algum deve ter o poder de cadastrar produtos e usurios.
Os usurios precisaro estar logados?
Se seguirmos a lgica das grandes lojas, o usurio s precisar estar
logado quando resolver finalizar a compra. Por outro lado, apenas
usurios logados podero acessar o Painel de Controle (backend) da
aplicao.
Como ser a pgina inicial?
Procure no se preocupar neste momento com a aparncia, e sim com a
funcionalidade. Procure seguir o modelo do slide anterior. Caso ache
interessante, pode colocar uma lista de livros em destaque na pgina
inicial.
14
Diretrizes
Criarei um sistema de busca?
uma boa ideia, mas no necessrio. O foco ser bastante didtico,
o que no impede que voc adicione quais funcionalidades achar
pertinentes.
Devo usar exatamente o banco do exemplo para minha loja?
De preferncia no. Seria importante se sua aplicao armazenasse as
compras realizadas, alm de emitir uma espcie de recibo.
15
COMPRAS
id
id_livro
id_usuario
USUARIO
id
nome
senha
is_admin
16
Mos Obra!!!
Agora que j sabemos por onde comear, vamos inciar o projeto!
Analise o modelo e veja se esta a melhor forma de implementao.
Lembre que voc no precisa seguir o modelo se no quiser, mas
precisa usar Orientao a Objetos + MVC.
Fique vontade para utilizar Singleton,
PDO, mtodos mgicos e tudo aquilo que
vimos em aula.
Escolha o banco de dados de sua
preferncia.
Acesse as lojas virtuais citadas para ter uma
idia melhor de como elas funcionam.
O monitor e o instrutor estararo disponveis
em private para dvidas individuais.
17