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
160
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
66
Testes Unitários com PHP
lafraga93
1
27
Boas Práticas com PHP
lafraga93
0
29
Other Decks in Programming
See All in Programming
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.2k
Package Management Learnings from Homebrew
mikemcquaid
0
220
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
ぼくの開発環境2026
yuzneri
0
230
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
180
AtCoder Conference 2025
shindannin
0
1.1k
CSC307 Lecture 04
javiergs
PRO
0
660
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Writing Fast Ruby
sferik
630
62k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
100
4 Signs Your Business is Dying
shpigford
187
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
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!