Skip to content

GabrielVioli/php-mvc-product-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP MVC Product Manager & API

Um sistema completo de gerenciamento de produtos (CRUD) com interface Web e API RESTful, construído com PHP 8 Puro, sem o uso de frameworks.

Este projeto foi desenvolvido como um desafio de arquitetura de software, implementando manualmente conceitos avançados como MVC, Roteamento Personalizado, Repository Pattern e Injeção de Dependência Manual.


📸 Screenshots

Demonstração dos endpoints funcionando (testes realizados via Thunder Client):

1. Listar Todos (GET) e Detalhes (GET)

Listar Produtos Detalhes do Produto
Listar Detalhes

2. Criar (POST) e Atualizar (PUT)

Criar Produto Atualizar Produto
Criar Atualizar

3. Deletar (DELETE)

Deletar Produto
Deletar

🛠️ Tecnologias e Arquitetura

O projeto segue estritamente o padrão MVC (Model-View-Controller) com separação de responsabilidades.

  • Linguagem: PHP 8+
  • Banco de Dados: MySQL (PDO)
  • Gerenciador de Dependências: Composer (Autoload PSR-4)
  • Frontend: HTML5 e CSS3 Puro
  • Arquitetura:
    • Core: Router personalizado (Router.php) e Conexão Singleton (Database.php).
    • Controllers: Separados em Web (retorna HTML) e API (retorna JSON).
    • Models: Camada de dados e regras de negócio.
    • Views: Interface do usuário limpa.

📦 Como rodar o projeto

Siga os passos abaixo para rodar a aplicação em sua máquina local.

1. Clone o repositório

git clone https://github.com/SEU_USUARIO/NOME_DO_REPO.git
cd NOME_DO_REPO

2. Instale as dependências

Certifique-se de ter o Composer instalado.

composer install

3. Configuração do Banco de Dados

  1. Crie um banco de dados MySQL chamado loja.
  2. Importe o script SQL de criação das tabelas localizado em: core/database/schema.sql
  3. Abra o arquivo de configuração e insira suas credenciais do MySQL (usuário e senha): core/Database.php

4. Inicie o Servidor Embutido

Rode o comando abaixo na raiz do projeto para iniciar o servidor do PHP:

php -S localhost:8000 -t public

5. Acesse


🔗 Documentação da API

A API aceita e retorna dados em formato JSON. Você pode testar usando Postman, Thunder Client ou Insomnia.

Método Endpoint Descrição Exemplo de Body (JSON)
GET /api/produtos Lista todos os produtos N/A
GET /api/produto?id=1 Exibe um produto específico N/A
POST /api/produto/create Cria um novo produto {"nome": "TV", "preco": 1000, "categoria": 1}
PUT /api/produto/update?id=1 Atualiza um produto {"nome": "TV 4K", "preco": 1200}
DELETE /api/produto/delete?id=1 Remove um produto N/A

👨‍💻 Autor

Desenvolvido por Gabriel Vinicius de Oliveira.

About

Sistema de gerenciamento de produtos feito em PHP 8 puro. Implementa arquitetura MVC manual, Roteador personalizado, Composer (PSR-4) e endpoints de API.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors