SlideShare uma empresa Scribd logo
1 de 44
O que não fazer ao atualizar para o PHP 7
TDC SP 2018 - TRILHA PHP ESSENCIAL
Agenda
TDC SP 2018 - TRILHA PHP ESSENCIAL
Benefícios do PHP 7
Migração para o PHP 7 (case Leroy Merlin)
Problemas enfrentados
Lições Aprendidas
Conclusão
Gabriel Machado
TDC SP 2018 - TRILHA PHP ESSENCIAL
Software Developer
DevOps Engineer
Instrutor
Gabriel Caruso
Evangelista PHP (internals e externals)
BackEnd Developer na Leroy Merlin
Membro da comunidade PHPSP
@carusogabriel
TDC SP 2018 - TRILHA PHP ESSENCIAL
Benefícios do PHP 7
TDC SP 2018 - TRILHA PHP ESSENCIAL
Performance
HTTP://WWW.ZEND.COM/EN/RESOURCES/PHP7_INFOGRAPHIC
TDC SP 2018 - TRILHA PHP ESSENCIAL
TDC SP 2018 - TRILHA PHP ESSENCIAL
TDC SP 2018 - TRILHA PHP ESSENCIAL
TDC SP 2018 - TRILHA PHP ESSENCIAL
Novas funcionalidades
do PHP 7
TDC SP 2018 - TRILHA PHP ESSENCIAL
Especialização das exceções
HTTPS://PHP.NET/MANUAL/EN/LANGUAGE.ERRORS.PHP7.PHP
TDC SP 2018 - TRILHA PHP ESSENCIAL
Especialização das exceções
HTTPS://3V4L.ORG/YZWED
TDC SP 2018 - TRILHA PHP ESSENCIAL
Lexer sensível ao contexto
HTTPS://WIKI.PHP.NET/RFC/CONTEXT_SENSITIVE_LEXER
TDC SP 2018 - TRILHA PHP ESSENCIAL
Tipos escalares
HTTPS://WIKI.PHP.NET/RFC/SCALAR_TYPE_HINTS_V5
TDC SP 2018 - TRILHA PHP ESSENCIAL
Por que atualizar para o
PHP 7 em 2018?
TDC SP 2018 - TRILHA PHP ESSENCIAL
Suporte
HTTPS://PHP.NET/SUPPORTED -VERSIONS.PHP
TDC SP 2018 - TRILHA PHP ESSENCIAL
PHP 7.1
HTTPS://GOPHP71.ORG/
TDC SP 2018 - TRILHA PHP ESSENCIAL
Migração para PHP 7
CASE LEROY MERLIN
TDC SP 2018 - TRILHA PHP ESSENCIAL
Histórico
TDC SP 2018 - TRILHA PHP ESSENCIAL
2013
Laravel 4
MongoDB 2.6
Elasticsearch 0.92
AWS
CircleCI
Newrelic
2014
Vagrant
Scrutinizer
Laravel 4.2
Elasticsearch 1.6
2015
Laravel 5.1
Elasticsearch 1.9
2016
PHP 5.6
MongoDB 3.0
Docker
Migração PHP 7
Iniciada em Julho/2016 - Período 2 semanas entre as releases (Slack)
Planejamento inicial
◦ Reescrita do Mongolid para suportar a nova extensão (ext-mongodb) ✔
◦ Atualizar o Mongolid no projeto
◦ Atualização dos containers Docker
◦ Correção de breaking changes e testes unitários
◦ Atualizar versão do ElasticBeanstalk AWS
Objetivo
◦ Melhorar response time da aplicação
◦ Reduzir o número de maquinas na AWS
◦ Possibilitar uso de novas funcionalidades
TDC SP 2018 - TRILHA PHP ESSENCIAL
Mas...
TDC SP 2018 - TRILHA PHP ESSENCIAL
ext-mongodb (^1.1) estava em WIP
Objetos não tinham suporte a serialização
Não era possível estender suas classes (final)
Implementação diferente do objeto de datas (UTCDateTime)
TDC SP 2018 - TRILHA PHP ESSENCIAL
Converter e
Serializer • _id: MongolidObjectID
• name: string
• date:
MongolidUTCDatetime
Serializer/Converter
• _id: MongodbObjectID
• name: string
• date:
MongodbUTCDatetime
Persist/Find
Solução ext-mongodb ^1.1
TDC SP 2018 - TRILHA PHP ESSENCIAL
Suporte PHP 7 na AWS
Elastic Beanstalk
◦ Solução PaaS na AWS para gerenciar aplicação web
◦ Permite customizações nível AMI
◦ Criação AMI custom a partir de um .sh de setup
TDC SP 2018 - TRILHA PHP ESSENCIAL
Incompatibilidade entre extensões
TDC SP 2018 - TRILHA PHP ESSENCIAL
• Processamento
paralelo de arquivos
lote
• Um arquivo por loja
• ~30 lojas
pcntl_*
• Persistência com
MongoDB
• Usado pelo ODM
ext-mongodb
Importância dos testes
Testes unitários ✔
Testes em ambiente staging ✔
Testes com usuários internos 💣
TDC SP 2018 - TRILHA PHP ESSENCIAL
Monitoramento em produção
Testes unitários ✔
Testes em ambiente staging ✔
Testes com usuários internos 💣 ✔
Erros no NewRelic ✔
Vendas do e-commerce 💣
TDC SP 2018 - TRILHA PHP ESSENCIAL
Monitoramento em produção
TDC SP 2018 - TRILHA PHP ESSENCIAL
🚫
Migração PHP 7
Iniciada em Julho/2016 - Período 2 3 semanas entre as releases (Slack)
Planejamento inicial
◦ Reescrita do Mongolid para suportar a nova extensão (ext-mongodb) ✔
◦ Atualizar o Mongolid no projeto
◦ Criar serializer/converter
◦ Workaround ext-mongodb em threads
◦ Atualização dos containers Docker
◦ Correção de breaking changes e testes unitários
◦ Mais correções e bugs
◦ Atualizar versão do ElasticBeanstalk AWS
◦ Tratar falso positivos
TDC SP 2018 - TRILHA PHP ESSENCIAL
Migração PHP 7
Objetivo
◦ Melhorar response time da aplicação
◦ Reduzir o número de maquinas na AWS
◦ Possibilitar uso de novas funcionalidades
TDC SP 2018 - TRILHA PHP ESSENCIAL
E a performance?
ANTES (8 INSTANCIAS) DEPOIS (12 INSTANCIAS)
TDC SP 2018 - TRILHA PHP ESSENCIAL
Migração PHP 7
Objetivo
◦ Melhorar response time da aplicação ❌
◦ Reduzir o número de maquinas na AWS ❌
◦ Possibilitar uso de novas funcionalidades ✔
TDC SP 2018 - TRILHA PHP ESSENCIAL
Lições aprendidas
TDC SP 2018 - TRILHA PHP ESSENCIAL
Importância da pirâmide de testes
TDC SP 2018 - TRILHA PHP ESSENCIAL
Cuidado ao usar os Tipos Escalares
TDC SP 2018 - TRILHA PHP ESSENCIAL
Não transforme documentação em tipos escalares nativos, ela pode estar
desatualizada
Não usar strict_types sem antes refatorar e analizar seu código, eles
também afetam funções internas
Use uma ferramenta de análise estática do código pode garantir que você
não esteja passando tipos errôneos para as funções que serão tipadas
Prepare seu código para facilitar
migrações
TDC SP 2018 - TRILHA PHP ESSENCIAL
Respeite a arquitetura da sua aplicação/framework
Crie ou use foward compatibility layers
Aplique Pollyfills
Procure por Adapters
Faça Profilling
de sua
aplicação
TDC SP 2018 - TRILHA PHP ESSENCIAL
Incompatibilidade entre extensões
Só use extensões se realmente necessário!
Algumas estatísticas ⭐
◦ PHP: 18k ⭐ (https://github.com/php/php-src)
◦ pthreads: 2,9k ⭐ (https://github.com/krakjoe/pthreads)
◦ ext-mongodb: 527⭐ (https://github.com/mongodb/mongo-php-driver)
◦ Duas juntas: ???
TDC SP 2018 - TRILHA PHP ESSENCIAL
Acompanhe a
evolução na
infraestrutura
◦ Use Infrastructure as Code
◦ ~5 minutos para configurar AMI
◦ Nova geração EC2
◦ Redução de 12 para 4 servidores
TDC SP 2018 - TRILHA PHP ESSENCIAL
Equilíbrio entre customizar e esperar
TDC SP 2018 - TRILHA PHP ESSENCIAL
Equilíbrio entre customizar e esperar
TDC SP 2018 - TRILHA PHP ESSENCIAL
Conclusão
TDC SP 2018 - TRILHA PHP ESSENCIAL
Referências
http://www.zend.com/en/resources/php7_infographic
https://php.net/manual/en/language.errors.php7.php
https://3v4l.org/yzwed
https://wiki.php.net/rfc/context_sensitive_lexer
https://wiki.php.net/rfc/scalar_type_hints_v5
https://php.net/supported-versions.php
https://gophp71.org/
https://www.newrelic.com/
https://blackfire.io/
https://www.thoughtworks.com/pt/insights/blog/write-better-tests-5-steps
https://github.com/php/php-src
https://github.com/krakjoe/pthreads
TDC SP 2018 - TRILHA PHP ESSENCIAL
Obrigado!
PERGUNTAS?
TDC SP 2018 - TRILHA PHP ESSENCIAL
gmsantos
gmsantos__
gmsantos
gmsantos
Slides disponíveis em: http://bit.ly/tdc-sp-php7
carusogabriel
carusogabriel
carusogabriel
carusogabriel

Mais conteúdo relacionado

Mais procurados

gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoLetticia Nicoli
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7tdc-globalcode
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.tdc-globalcode
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testeskinow
 
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NETTDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NETtdc-globalcode
 
Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOFernando Rizzato
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Michael Douglas
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 

Mais procurados (20)

gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Seminário: Delphi
Seminário: DelphiSeminário: Delphi
Seminário: Delphi
 
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NETTDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
 
Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIO
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
Onde posso ir como “dev”
Onde posso ir como “dev”Onde posso ir como “dev”
Onde posso ir como “dev”
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 

Semelhante a O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em InformáticaEder Carneiro
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressTiago Hillebrandt
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDouglas V. Pasqua
 

Semelhante a O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 (20)

PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em Informática
 
Cursos Season
Cursos SeasonCursos Season
Cursos Season
 
Cursos Season
Cursos Season Cursos Season
Cursos Season
 
Introducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandiIntroducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandi
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
Aula 02 introdução ao php
Aula 02   introdução ao phpAula 02   introdução ao php
Aula 02 introdução ao php
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
 
Django
DjangoDjango
Django
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 

Mais de Gabriel Machado

Implementando PSR-3 com Monolog
Implementando PSR-3 com MonologImplementando PSR-3 com Monolog
Implementando PSR-3 com MonologGabriel Machado
 
GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019Gabriel Machado
 
Logs, pra que te quero! @ Meetup PHP Vale
Logs, pra que te quero! @ Meetup PHP ValeLogs, pra que te quero! @ Meetup PHP Vale
Logs, pra que te quero! @ Meetup PHP ValeGabriel Machado
 
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Gabriel Machado
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Gabriel Machado
 
Pipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudPipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudGabriel Machado
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Gabriel Machado
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeGabriel Machado
 
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018Gabriel Machado
 
Logs no Laravel 5.6 @ 7masters Laravel
Logs no Laravel 5.6 @ 7masters LaravelLogs no Laravel 5.6 @ 7masters Laravel
Logs no Laravel 5.6 @ 7masters LaravelGabriel Machado
 
Relatórios gerenciais com MySQL @ 7Masters MySQL
Relatórios gerenciais com MySQL @ 7Masters MySQLRelatórios gerenciais com MySQL @ 7Masters MySQL
Relatórios gerenciais com MySQL @ 7Masters MySQLGabriel Machado
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Gabriel Machado
 
Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Gabriel Machado
 
Novidades do Laravel 5.3 @ 11º Meetup Laravel SP
Novidades do Laravel 5.3 @ 11º Meetup Laravel SPNovidades do Laravel 5.3 @ 11º Meetup Laravel SP
Novidades do Laravel 5.3 @ 11º Meetup Laravel SPGabriel Machado
 

Mais de Gabriel Machado (14)

Implementando PSR-3 com Monolog
Implementando PSR-3 com MonologImplementando PSR-3 com Monolog
Implementando PSR-3 com Monolog
 
GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019
 
Logs, pra que te quero! @ Meetup PHP Vale
Logs, pra que te quero! @ Meetup PHP ValeLogs, pra que te quero! @ Meetup PHP Vale
Logs, pra que te quero! @ Meetup PHP Vale
 
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019Implementando PSR-3 com Monolog @ PHP Community Summit 2019
Implementando PSR-3 com Monolog @ PHP Community Summit 2019
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
 
Pipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudPipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober Cloud
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPVale
 
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018
Continuous Delivery com Docker, OpenShift e Jenkins @ TDC FLP 2018
 
Logs no Laravel 5.6 @ 7masters Laravel
Logs no Laravel 5.6 @ 7masters LaravelLogs no Laravel 5.6 @ 7masters Laravel
Logs no Laravel 5.6 @ 7masters Laravel
 
Relatórios gerenciais com MySQL @ 7Masters MySQL
Relatórios gerenciais com MySQL @ 7Masters MySQLRelatórios gerenciais com MySQL @ 7Masters MySQL
Relatórios gerenciais com MySQL @ 7Masters MySQL
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
 
Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017Logs, pra que te quero! @ TDC SP 2017
Logs, pra que te quero! @ TDC SP 2017
 
Novidades do Laravel 5.3 @ 11º Meetup Laravel SP
Novidades do Laravel 5.3 @ 11º Meetup Laravel SPNovidades do Laravel 5.3 @ 11º Meetup Laravel SP
Novidades do Laravel 5.3 @ 11º Meetup Laravel SP
 

O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018