Skip to content

Edssaac/php-clean-arch

Repository files navigation

Apresentação Geral

Nome do Projeto: PHP Clean Arch

Descrição:

Este projeto é uma API REST desenvolvida com o objetivo de estudo e prática da Clean Architecture e dos conceitos de Domain-Driven Design (DDD).

A aplicação foi construída em PHP utilizando o framework Laravel, com persistência de dados em MySQL. A arquitetura do projeto prioriza a separação de responsabilidades entre as camadas de domínio, aplicação, infraestrutura e interfaces, buscando alto desacoplamento, testabilidade e facilidade de manutenção.

Através da API é possível realizar operações de CRUD no domínio de registros, incluindo criação, listagem, atualização e exclusão, além de uma funcionalidade de exportação dos dados registrados por meio de uma rota específica.

O projeto foi estruturado para simular um cenário real de API backend, aplicando boas práticas como uso de casos de uso, repositórios, DTOs e critérios de filtragem. Também foram implementados testes automatizados com o objetivo de cobrir as principais camadas da aplicação, garantindo o correto funcionamento das regras de negócio e facilitando a evolução do código.

Objetivo:

Implementar uma aplicação simples em Arquitetura Limpa + DDD.

Tecnologias Utilizadas:

DOCKER COMPOSER LARAVEL PHP MYSQL

Para Desenvolvedores

Se você é um desenvolvedor interessado em contribuir ou entender melhor o funcionamento do projeto, aqui estão algumas informações adicionais:

Ambiente:

PHP MYSQL

CREATE DATABASE IF NOT EXISTS `mysql-clean-arch`;

USE `mysql-clean-arch`;

CREATE TABLE IF NOT EXISTS `registrations` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `registration_number` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `birth_date` date NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `registrations_registration_number_index` (`registration_number`),
  KEY `registrations_deleted_at_index` (`deleted_at`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci

Instruções de Instalação e Configuração:

Atenção: Obrigatório o uso de Docker em sua máquina.

  1. Clone o repositório do projeto:
git clone https://github.com/edssaac/php-clean-arch
  1. Navegue até o diretório do projeto:
cd php-clean-arch
  1. Inicie a aplicação atráves do script que configura o Docker:
.ci_cd/init.sh  

Com isso a aplicação estará acessivel: http://localhost:8080

Confira a Documentação para informações sobre o consumo da API.


Caso queira rodas os testes:

docker exec -it php bash
php artisan test

  1. Quando desejar encerrar a aplicação, use:
.ci_cd/stop.sh

Caso deseje encerrar e remover os volumes criados, use:

.ci_cd/stop.sh -v

Contato

GitHub Gmail Outlook Linkedin

About

Caso de estudo de Arquitetura Limpa em PHP.

Topics

Resources

License

Stars

Watchers

Forks

Languages