SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
Melhor e mais rápido
Bruno Ricardo Siqueira
2015
O PALESTRANTE
Bruno Ricardo Siqueira.
Desenvolvedor web e evangelista
PHP no Brasil. Entusiasta Docker.
Apaixonado por Git.
Trabalhando com internet há 8
anos, Bacharel em Sistemas da
Informação formado pelo ICMC -
USP, trabalhando atualmente na
empresa CI&T, desempenhando o
papel de Engenheiro de Software.
AGENDA
● Aquecimento
○ Contextualização
○ Depreciações
○ Remoções e redução de
inconsistências
● Olhando internamente
○ Memória
○ Performance
● Novidades
○ Unicode
○ Exceções
○ Classes anônimas
○ Operadores
○ Declarações
○ Generators
● Futuro próximo & Conclusões
● Perguntas
AQUECIMENTO
AQUECIMENTO - CONTEXTUALIZAÇÃO
● 2009 - PHP 5.3
○ Namespaces
○ Funções anônimas
● 2009 - PHP-FIG
● 2010 - HipHop for PHP
(HPHPc)
○ PHP -> binário C++
● 2011 - HipHop Virtual Machine
(HHVM)
○ JIT -> HipHop ByteCode
● 2012 - PHP 5.4
○ Traits
○ Built in Webserver
● 2013 - PHP 5.5
○ Generators
○ OpCache no Core
● 2014 - HACK Language
● 2014 - PHP 5.6
○ Variadic Functions (...)
○ php://input reutilizável
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
PHP7 BETA2
24/07
● PHP 4 constructors
● password_hash() option
AQUECIMENTO - DEPRECIAÇÕES
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● date.timezone warning:
○ valor padrão
● tags alternativas:
○ <% opening tag
○ <%= opening tag with echo
○ %> closing tag
○ (<scripts+languages*=s*(php|"php"|'php')s*>)i
opening tag
○ (</script>)i closing tag
● múltiplos blocos default em switches
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● SAPIs e extensões:
○ sapi/aolserver, sapi/apache, sapi/apache_hooks,
sapi/apache2filter, sapi/caudium, sapi/continuity,
sapi/isapi, sapi/milter, sapi/nsapi, sapi/phttpd,
sapi/pi3web, sapi/roxen, sapi/thttpd, sapi/tux,
sapi/webjames, ext/mssql, ext/mysql,
ext/sybase_ct, ext/ereg
○ movidas para o PECL
● Remoção de hexadecimais em strings numéricas
● E_STRICT Notices
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● Uniform Variable Syntax
OLHANDO
INTERNAMENTE
OLHANDO INTERNAMENTE - MEMÓRIA
OLHANDO INTERNAMENTE - PERFORMANCE
● ZVALs PHP 5.X
○ (quase) sempre alocados
na heap
○ reference counted &
cycle colletcion
○ dupla quantidade de
refcount (objetos)
○ muita referenciacão (ex.:
um objeto em uma
variável -> 4 ponteiros)
● ZVALs PHP 7
○ valores simples (int, bool…)
sem alocação na heap e
sem refcount
○ não existe mais double
refcount.
○ valores reutiáveis
independentemente da
zval structure
Estruturas de dados menores.
Menos alocações.
Menos referenciação.
MAIS PERFORMANCE!
OLHANDO INTERNAMENTE - PERFORMANCE
100% de
melhora no
desempenho
NOVIDADES
NOVIDADES - UNICODE
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - CLASSES ANÔNIMAS
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - DECLARAÇÕES scalar types
NOVIDADES - DECLARAÇÕES scalar types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
return expressions + delegating generator…
Tá vendo a concorrência?
Lightweight
Threads
FTW!
FUTURO PRÓXIMO
& CONCLUSÕES
FUTURO PRÓXIMO
FUTURO PRÓXIMO
● PSR7 + Middleware pattern irão
aumentar ainda mais a
reusabilidade
● Multi thread nativo
● JIT + PHP Virtual Machine
● Especificação da linguagem
● Mais consistência
● AST trará novas/melhores
ferramentas de análise estática
● ...
PERGUNTAS?
THANKS
FOR
BEING
HERE!
PHP7: melhor e mais rápido
Referências: http://bit.ly/tdcsp-2015-php7
BRUNO RICARDO SIQUEIRA
@brunoric
https://joind.in/14853

Mais conteúdo relacionado

Semelhante a PHP7: Melhor e mais rápido

Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014MySQL Brasil
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)Wellington Silva
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptMarcos Artigas
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dadostdc-globalcode
 
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
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
 
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !William Felipe
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferVinicius Warto Campos
 
No sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaNo sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaWaldemar Neto
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 Gabriel Machado
 
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Edson Oliveira Junior
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008zehzinho
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014MySQL Brasil
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 

Semelhante a PHP7: Melhor e mais rápido (20)

Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.ppt
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Times plataforma-tdc2020
Times plataforma-tdc2020Times plataforma-tdc2020
Times plataforma-tdc2020
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
 
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
No sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaNo sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglota
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
 
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 

Mais de Bruno Ricardo Siqueira

Managing e commerce systems codebase with git
Managing e commerce systems codebase with gitManaging e commerce systems codebase with git
Managing e commerce systems codebase with gitBruno Ricardo Siqueira
 
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleConstruindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleBruno Ricardo Siqueira
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitBruno Ricardo Siqueira
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 

Mais de Bruno Ricardo Siqueira (6)

Managing e commerce systems codebase with git
Managing e commerce systems codebase with gitManaging e commerce systems codebase with git
Managing e commerce systems codebase with git
 
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleConstruindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
 
TDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & fasterTDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & faster
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
Impulsionando sua presença Online
Impulsionando sua presença OnlineImpulsionando sua presença Online
Impulsionando sua presença Online
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 

PHP7: Melhor e mais rápido