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
Namespace and Its Future
tagomoris
6
700
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
270
Navigating Dependency Injection with Metro
zacsweers
3
960
testingを眺める
matumoto
1
140
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
860
AWS発のAIエディタKiroを使ってみた
iriikeita
1
190
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
230
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
24
12k
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
220
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
470
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.8k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Statistics for Hackers
jakevdp
799
220k
Agile that works and the tools we love
rasmusluckow
330
21k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Docker and Python
trallard
45
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
A Modern Web Designer's Workflow
chriscoyier
696
190k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
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!