Um pequeno projeto de implementação de um site de e-commerce para testar conhecimentos na linguagem php. Esse projeto está sendo feito em conjunto com o "curso completo de php7" da hcodebr para o treinamento do novo time de estagiários da WebJump!
É recomendado que você tenha um ambiente de testes para validar alterações e atualizações antes de atualizar sua loja em produção.
Existem algumas lib e recursos que ainda não foram adicionadas ao composer.json, elas são: cURL, openssl e a GD library.
A instalação do módulo é feita utilizando o Composer. Para baixar e instalar o Composer no seu ambiente acesse https://getcomposer.org/download/
- Php 7.x
- Virtual host (apache ou nginx)
- Banco MySQL
- OS Unix (de preferencia, alguns recursos podem não funcionar corretamente no windows)
- Composer
Este projeto está sendo desenvolvido para o treinamento do time de estagiários da WebJump! Mas, sinta-se livre para o usar o código fonte e sugerir melhorias :)
https://www.linkedin.com/in/gustavo-vicente-dauer/
Este projeto utiliza a forma DAO para organização das classes e seus respectivos métodos. As classes são:
- Vendor -> Hcodebr -> php-classes -> src -> DB -> Sql.php
A classe SQL é responsável pela comunicação com o banco de dados, e, fazer o bind params de forma dinâmica. A diferença entre os métodos "query" e "select" está no retorno de dados, visto que o método "query" é um método void
- Vendor -> Hcodebr -> php-classes -> src -> Model.php
Essa é uma classe abstrata, responsável por conter os métodos setData que carrega seus filhos com um array de valores. Também é responsável por fazer os métodos set e get de forma dinâmica.
- Vendor -> Hcodebr -> php-classes -> src -> Mailer.php
Classe responsável pelo envio de e-mail da rota forgot
- Vendor -> Hcodebr -> php-classes -> src -> Page.php
Classe responsável por fazer o merge entre o views e views cache atráves da classe pai raintpl
- Vendor -> Hcodebr -> php-classes -> src -> PageAdmin.php
Mesma função da page, mudando apenas o tipo de template a ser carregado. Extende da classe pai Page.php
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Address.php
Essa classe é responsável por se comunicar com o webservice "Via CEP", fazer o carregamento do cep informado aplicando o frete com o webservice da Sedex (a comunicação com o webservice da sedex é feita pela classe Cart.php)
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Category.php
Classe responsável por gerenciar os CRUD da categoria, e, atribuir n produtos a mesma. Possui métodos para paginação.
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Order.php
Classe responsável por gerenciar o carrinho e pedidos dos usuários cadastrados. Possui métodos para paginação.
- Vendor -> Hcodebr -> php-classes -> src -> Model -> OrderStatus.php
Possui apenas um método, é uma classe final que serve apenas para gerenciar os status dos pedidos (EM ABERTO, AGUARDANDO PAGAMENTO, PAGO, ENTREGUE)
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Product.php
Classe responsável pelo CRUD de produtos, traser a wishlist atrelado ao usuário, categoria e o carrinho. Possui métodos para paginação, OBSERVAÇÃO: Essa classe necessita de uma tabela contendo as relações entre REVIEW n-1 PRODUTOS.
- Vendor -> Hcodebr -> php-classes -> src -> Model -> User.php
Classe responsável pelo CRUD de usuários e validação de login (admin ou não). Possui método para paginação, forgot password via classe Mailer.php, get Orders e o captch do google.
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Wishlist.php
Classe responsável pelo CRUD da lista de desejos OBSERVAÇÃO: Essa classe necessita de uma tabela contendo as relações entre USUÁRIO 1-n PRODUTOS.
- Vendor -> Hcodebr -> php-classes -> src -> Model -> Cart.php
É a classe responsável por manipular o cart do usuário, seja um usuário cadastrado ou não (via $_SESSION) e por se comunicar com o webservice da sedex através do
"http_build_query"
E
"simplexml_load_file"