Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

PHP SOLID & Design Patterns

Laboratório prático para estudo de SOLID, Design Patterns, Clean Code e arquitetura aplicada ao PHP moderno.

Objetivo

Este projeto foi criado como laboratório de estudos para aprofundar conceitos fundamentais de engenharia de software utilizando PHP puro (sem framework, de propósito). O código evolui aula a aula em torno de um mesmo domínio — um pequeno sistema de pedidos/e-commerce — e cada conceito ganha um exemplo executável, documentação e commit próprios.

Progresso

SOLID

Design Patterns

  • Strategy
  • Factory
  • Repository
  • Adapter
  • Decorator
  • Builder
  • Observer

Arquitetura & Testes

  • Dependency Injection
  • Use Cases
  • Separação domínio × infraestrutura
  • PHPUnit (testes unitários e de integração)

Estrutura

├── README.md
├── docs/
│   ├── solid.md             # Princípios SOLID explicados com os exemplos do repo
│   ├── design-patterns.md   # (em construção)
│   └── interview.md         # (em construção)
└── examples/
    └── 01-solid/
        ├── 01-srp/          # Aula 01 — Single Responsibility Principle
        └── 02-ocp/          # Aulas 02–03 — Open/Closed + Liskov Substitution

A estrutura cresce junto com o estudo — cada aula adiciona seu exemplo em examples/ e sua documentação em docs/.

Requisitos

  • PHP 8.0+ (os exemplos usam constructor property promotion e named arguments)

Executando os exemplos

Cada exemplo é autocontido e tem um index.php como ponto de entrada:

php examples/01-solid/01-srp/index.php
php examples/01-solid/02-ocp/index.php

Trilha de estudos

Aula Tema Status
01 SRP — Single Responsibility
02 OCP — Open/Closed
03 LSP — Liskov Substitution
04 ISP — Interface Segregation 🔜
05 DIP — Dependency Inversion 🔜
06 Strategy 🔜
07 Factory 🔜
08 Repository 🔜
09 Adapter 🔜
10 Decorator 🔜
11 Builder 🔜
12 Observer 🔜
13 Arquitetura 🔜
14 PHPUnit + revisão 🔜

Objetivos de aprendizado

  • Reduzir acoplamento
  • Melhorar coesão
  • Aplicar SOLID no dia a dia
  • Preferir composição a herança
  • Aplicar Design Patterns com critério (saber também quando não usar)
  • Escrever código testável
  • Separar domínio e infraestrutura

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors