Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Boas Práticas com PHP V2
Search
Gustavo Fraga
September 14, 2019
Programming
0
150
Boas Práticas com PHP V2
Gustavo Fraga
September 14, 2019
Tweet
Share
More Decks by Gustavo Fraga
See All by Gustavo Fraga
Integração Contínua com GitHub, TravisCI e Heroku
lafraga93
0
65
Testes Unitários com PHP
lafraga93
1
24
Boas Práticas com PHP
lafraga93
0
28
Other Decks in Programming
See All in Programming
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
110
Devvox Belgium - Agentic AI Patterns
kdubois
1
120
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
2
490
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
130
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
830
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
400
Introduce Hono CLI
yusukebe
0
380
Claude Agent SDK を使ってみよう
hyshu
0
610
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
180
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
160
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
Music & Morning Musume
bryan
46
6.8k
4 Signs Your Business is Dying
shpigford
185
22k
Agile that works and the tools we love
rasmusluckow
331
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
It's Worth the Effort
3n
187
28k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
590
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
RailsConf 2023
tenderlove
30
1.2k
Designing Experiences People Love
moore
142
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
None
Boas Práticas com PHP
https://blog.lafraga.me/ @lafraga93 no , no e no Gustavo Fraga Software
Developer https://imasters.com.br/perfil/gustavofraga
quem é dev PHP?
quem é dev e faz alguma coisa da vida que
não seja código?
então ...
essa é a primeira recomendação de boas práticas
mas hoje, também vamos falar de PHP!
ambiente de desenvolvimento
servidor embutido
>_ php -S localhost:9000
None
docker
• replicação de ambientes (inclusive para produção) • sem dependências
instaladas na máquina do desenvolvedor
None
>_ docker-compose up
None
componentes
não recrie as coisas, utilize componentes!
• rotas, http, autenticação, emails, arquivos entre outros
composer
• gerenciador de pacotes • provê um padrão de autoload
vamos gerar um pdf?
>_ composer require mpdf/mpdf
None
padrão de codificação e estilo de código
PHP Standard Recommendation
• são padrões recomendados pela comunidade
13 PSR’s ativas
eu só sei vou mostrar algumas
são geralmente implementadas pelos componentes
PSR 0 4 Padrão de Autoload
• define um padrão de carregamento das classes e dependências
• utilização de namespaces e o operador “use”
None
PSR 1 Padrão Básico de Codificação
• visa garantir a interoperabilidade técnica entre códigos PHP •
utilização de tags, termos e namespaces • declaração de classes, métodos e atributos
None
PSR 2 12 Guia do Estilo de Código
• define o padrão de estilo de código da linguagem
• trata sobre indentação, linhas, recuo, arquivos, entre outros
None
ferramentas
php-cs-fixer
• aplica os padrões de estilo de código aos arquivos
do seu projeto
None
>_ … --dev friendsofphp/php-cs-fixer
None
phpstan
• detecta erros no código sem executá-lo
None
>_ … --dev phpstan/phpstan
None
phpinsights
• realiza uma análise da “saúde” do seu projeto
None
>_ … --dev nunomaduro/phpinsights
None
testes unitários
pq testar?
pq sim
como testar?
>_ … --dev phpunit/phpunit ^8
None
dicas
object calisthenics
None
• exercícios de codificação • tornam o código manutenível, legível
e testável
S.O.L.I.D
• princípios de design • tornam o código manutenível, desacoplado
e flexível
Design Patterns
• soluções (padrões de implementação) para problemas que acontecem com
frequência
Test-Driven Development
• implementação guiada por testes • ciclo de desenvolvimento bem
definido • expressiva redução de bugs
obrigado!