Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Boas Práticas com PHP V2
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Gustavo Fraga
September 14, 2019
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Boas Práticas com PHP V2
Gustavo Fraga
September 14, 2019
More Decks by Gustavo Fraga
See All by Gustavo Fraga
Integração Contínua com GitHub, TravisCI e Heroku
lafraga93
0
72
Testes Unitários com PHP
lafraga93
1
30
Boas Práticas com PHP
lafraga93
0
32
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
420
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Event is what happens
moro
2
770
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
GitHub's CSS Performance
jonrohan
1033
470k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
A Tale of Four Properties
chriscoyier
163
24k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Building an army of robots
kneath
307
47k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
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!