Esta é uma aplicação web desenvolvida com PHP e Slim Framework, estruturada com arquitetura em camadas. O projeto foi criado como parte de uma atividade de desenvolvimento backend, com foco em boas práticas de organização de código, separação de responsabilidades e uso de padrões de desenvolvimento.
- PHP 8+
- Slim Framework
- Composer
- MySQL
- Insomnia (para testes de requisições HTTP)
O objetivo deste projeto é desenvolver um sistema web para gerenciar Diretores e seus Filmes, aplicando uma arquitetura em camadas (Router → Middleware → Controller → Service → DAO → Model → View) e boas práticas de desenvolvimento, como:
- Separação de responsabilidades
- Injeção de dependências
- Regras de negócio isoladas na camada Service
- Acesso ao banco de dados encapsulado na camada DAO
O sistema possui duas entidades principais:
- Diretor: representa o responsável pelos filmes.
- Filme: representa um filme cadastrado no sistema.
- Relacionamento: um Diretor pode ter muitos Filmes (1:N).
- Gerenciar Diretores: criar, listar, atualizar e remover diretores.
- Gerenciar Filmes: criar, listar, atualizar e remover filmes, associados a um diretor específico.
Antes de rodar a aplicação, certifique-se de ter os seguintes itens instalados:
git clone https://github.com/lauratrigo/arquitetura_camadas_filmes.git
cd arquitetura_camadas_filmescomposer install- Crie um banco de dados MySQL chamado filmes_db.
- Configure as credenciais no arquivo .env:
DB_HOST=localhost DB_NAME=filmes_db DB_USER=seu_usuario DB_PASS=sua_senha
php -S localhost:8000 -t public- A aplicação estará disponível em http://localhost:8000
- Use o Insomnia ou Postman para enviar requisições HTTP para as rotas definidas em FilmeRouter e DiretorRouter.
arquitetura_camadas_filmes/
├── src/
│ ├── router/
│ │ ├── FilmeRouter.php
│ │ └── DiretorRouter.php
│ ├── middleware/
│ │ ├── FilmeMiddleware.php
│ │ └── DiretorMiddleware.php
│ ├── controller/
│ │ ├── FilmeController.php
│ │ └── DiretorController.php
│ ├── service/
│ │ ├── FilmeService.php
│ │ └── DiretorService.php
│ ├── dao/
│ │ ├── FilmeDAO.php
│ │ └── DiretorDAO.php
│ ├── model/
│ │ ├── Filme.php
│ │ └── Diretor.php
│ └── view/
│ └── templates/ (HTML ou arquivos de resposta)
├── public/
│ └── index.php
├── vendor/
├── .env
├── composer.json
└── README.md
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.
Este projeto foi desenvolvido por Laura Trigo como parte de uma atividade da disciplina de programação para a internet, aplicando conceitos de arquitetura em camadas e boas práticas de desenvolvimento backend em PHP com Slim Framework.