Blog do MX Cursos

Criando um carrinho de compras com PHP – Parte 1

Oi pessoal,

Criei uma série de 3 videoaulas, ensinando a como criar um carrinho de compra utilizando PHP Orientado a Objetos. Iremos ver conceitos de MVC, utilizar interface, criar entidades e repositórios e utilizar injeção de dependência.

Nessa primeira parte, criaremos nossa estrutura em MVC, utilizaremos o namespace, criaremos a inclusão de nossas classes utilizando spl_autoload_register e iremos separar responsabilidades para um melhor aproveitamento do nosso projeto.

Para um melhor aproveitamento da vídeo aula, iremos adicionar algumas informações que foram utilizadas na aula.

Apesar de não ser o foco da vídeo aula, utilizamos MVC (Model, View e Controller). Ele é um padrão de arquitetura de software, onde separa sua aplicação em camadas, onde o Model é a regra de negócios e representação dos dados, a View é a saída da informação e interação com usuário e o Controller é que recebe a entrada e repassa as informações chamando o Model ou a View.

E com isso podemos ter separações de responsabilidade e reutilização do código.

Para evitarmos trabalhar com inclusão dos arquivos individuais, foi utilizado com autoload da SPL, que é spl_autoload_register. Toda vez que vamos instanciar uma classe, é passada para essa função e a informação passada é convertida em caminho até o arquivo, realizando assim essa inclusão.

Em todo nosso projeto foi adotado as namespace’s, que são formas de agrupar itens. Utilizamos pastas para realizar a separação das nossas classes de forma segmentada. E utilizaremos os mesmos nomes em vários arquivos. Com isso, existia o colisão de nomes, ocasionando conflitos.

Nossos cursos indicados

Antes da namespace, era utilizado o underline no nome das classes para separar as pastas até chegar ao arquivo

Veja o exemplo:

<?php 

class App_Model_Product_ProductRepositoryPDO{

}

Ao chamar o autoload, era trocado o underline pela barra e assim incluído com arquivo.

Isso garantia classes com nomes únicos, evitando a colisão. E com a utilização do namespace, não precisaremos utilizar esse artificio. Na hora de chamar as classes pra trabalharmos, simplificaremos também, evitando assim esses nomes gigantes que eram criados.

Exemplo utilizando Namespace:

<?php 

namespace App\Model\Product;

class ProductRepositoryPDO{

}

Arquivos do Projeto:

https://github.com/davidchc/videoula-criando-carrinho-de-comprar-php