slides sistema de loja virtual

17

Upload: spacetechinformatica

Post on 14-Nov-2015

30 views

Category:

Documents


8 download

DESCRIPTION

loja virtual em php orientação a objetos slides para um melhor desenvolvimento seguindo os padrões de projetos

TRANSCRIPT

  • 2Dvidas?Primeiramente, precisamos nos certificar que os conceitos anteriormente vistos foram entendidos para a criao do nosso projeto final.MVC, Singleton e PDO so pr-requisitos. preciso ter instalados na sua mquina os softwares abaixo:

    ou

  • 3Orientaes GeraisIniciamos 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.

  • 4O projetoUm 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.brhttp://www.submarino.com.brhttp://www.americanas.com.brhttp://www.comprafacil.com.br

    Conhecer estes cases pode ser importante para a criao de sua loja!

  • 5Arquitetura: Backendadmin.php

    Livros

    Carrinho Compras

    Usurios

    Login

    View

    AdminController

    topo.tpl.php index.tpl.php rodape.tpl.php

    Requisio HTTP

    Resposta HTTP

  • 6Arquitetura: Frontendindex.php

    Livros

    Carrinho Compras

    Usurios

    Login

    View

    FrontController

    topo.tpl.php index.tpl.php rodape.tpl.php

    Requisio HTTP

    Resposta HTTPcarrinho.tpl.php listar.tpl.php logar.tpl.php

  • 7Estrutura de arquivos/var/www/loja

    admin.phpindex.phpbootstrap.phpconfig.phpapp/

    AdmController.phpFrontController.phpmodel/

    Carrinho.phpCompras.phpLivros.phpUsuarios.php

    View.phplib/

    Banco.phpLogin.php

    view/admin/

    topo.tpl.phpindex.tpl.phprodape.tpl.phplivros/

    inserir.tpl.phpalterar.tpl.php

    usuarios/inserir.tpl.phpalterar.tpl.php

    front/topo.tpl.phpindex.tpl.phprodape.tpl.phpcompras/

    carrinho.tpl.phplivros/

    listar.tpl.phpusuarios/

    logar.tpl.php

  • 8Configurando o banco1. Altere o arquivo config.php colocando as credenciais de acesso ao banco de dados que voc criou.
  • 9Configurando o banco

    # mysql -u root -p

    mysql> show databases;

    mysql> create database loja;mysql> use loja

    2. Acesse o MySQL:

    3. Verifique se voc no tem o database 'loja' criado:

    4. Crie o database loja e selecione para uso:

    mysql> create user 'loja'@'localhost' identified by '123456';

    5. Crie um usurio 'loja' para acessar o banco de dados:

    mysql> grant all on loja.* to loja;

    6. Conceda permisso de acesso a todas as tabelas do banco 'loja':

  • 10

    Configurando o banco7. 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');

  • 11

    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);

  • 12

    Configurando o banco

    mysql> show tables;

    mysql> select * from livros;

    mysql> select * from usuarios;

    8. Testando para ver se est tudo ok:

    http://localhost/loja/index.php

    9. Acesse o sistema da loja:

  • 13

    Acessando a loja...

  • 14

    DiretrizesAgora 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.

    Devo usar o banco do exemplo para minha loja?De preferncia no. Seria importante se sua aplicao armazenasse as compras realizadas.

  • 15

    DiretrizesCriarei 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.

  • 16

    Por onde comear?1. Defina a sua base de dados. Ateno ao criar o model Compras, pois ele trabalha diretamente com o Carrinho, que no manipula dados do banco, e sim da sesso do usurio.

    LIVRO

    idtituloisbnsinopseautorpreco

    COMPRAS

    idid_livro id_usuario

    USUARIO

    id nomesenha is_admin

    2. Escreva os Controllers, usando parmetros para direcionar qual model e qual template da view ser chamado. Por exemplo:http://localhost/loja/index.php?module=livros&action=listar

    O Controller deve pegar os dados do model Livros, mtodo listar(), e o template chamado deve estar numa pasta livros e o arquivo se chamar listar.

  • 17

    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.

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17