Globalcode – Open4education
Trilha PHP – Florianópolis 2018
Cassio Santos
Globalcode – Open4education
O QUE MUDOU
INTERNAMENTE NO PHP 7?
#TheDevConf 2018 - Trilha PHP:
Globalcode – Open4education
cassiosantos@tdc2018florianopolis:
Desenvolvedor PHP desde 2005
Atuei nas área de:
hospedagem de sites
software para a área portuária
Atuo no desenvolvimento da Rede
Social Coorporativa SocialBase
Globalcode – Open4education
Python Floripa PHP SC Floripa
Globalcode – Open4education
Globalcode – Open4education
1994
Rasmus Lerdorf
Personal Home Page
Tools (PHP Tools)
Globalcode – Open4education
1996
PHP 2: Rasmus Lerdorf
PHP/FI
1995
PHP 1: Rasmus Lerdorf
Forms Interpreter /
PHP Construction Kit
Globalcode – Open4education
1996
PHP 2: Rasmus Lerdorf
PHP/FI
1995
PHP 1: Rasmus Lerdorf
Forms Interpreter /
PHP Construction Kit
Globalcode – Open4education
Rasmus Lerdorf disse:
“I don’t know how to stop it, there was never
any intent to write a programming language […] I
have absolutely no idea how to write a
programming language, I just kept adding the next
logical step on the way.”
Globalcode – Open4education
2000
PHP 4: Andi Gutmans,
Zeev Suraski e
Rasmus Lerdorf
PEAR: PHP Extension and Application Repository,
PHPQA: PHP Quality Assurance Team
1998
PHP 3: Andi Gutmans,
Zeev Suraski e
Rasmus Lerdorf
PHP: Hypertext Preprocessor
Globalcode – Open4education
2005-2009
PHP 6?
Unicode / UTF-16 internal strings
2004
PHP 5: Andi Gutmans,
Zeev Suraski e
Rasmus Lerdorf
Melhor O.O. e PDO
Globalcode – Open4education
Globalcode – Open4education
2015
PHP 7: Dmitry Stogov,
Xinchen Hui e
Nikita Popov
Melhor tratamento de tipos,
padronização de exceções,etc
2014
PHP NG: Dmitry Stogov,
Xinchen Hui e
Nikita Popov
Melhor tratamento com tipos
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
2015
PHP 7: Dmitry Stogov,
Xinchen Hui e
Nikita Popov
Melhor tratamento de tipos,
padronização de exceções,etc
2014
PHP NG: Dmitry Stogov,
Xinchen Hui e
Nikita Popov
Melhor tratamento com tipos
Globalcode – Open4education
Globalcode – Open4education
Mudanças do PHP 7
Quebra de Compatibilidade
Novos Operadores
Erros e Exceções
Indução de Tipo Escalar
Declaração de Tipo de Retorno
Classes Anônimas
Palavras-chave semi-reservadas Crédito:
Guilherme Blanco
Globalcode – Open4education
PHP 7.1
Tipos "nullable"
Retorno "void"
Pseudo-tipo "iterable"
Modificadores de
visibilidade de
constante de classes
Sintaxe de colchetes
em atribuições de
desconstrução
de array
Captura de várias
exceções simultâneas
Globalcode – Open4education
PHP 7.2
Tipo "object"
Contagem de objetos "non-contable"
Removida a extensão "Mcrypt"
Nova extensão "sodium"
Argon2 para hash de senhas
Globalcode – Open4education
Melhorias internas do PHP7
Árvore de Sintaxe Abstrata (Abstract Syntax Tree)
Suporte completo a 64 bits
LFS (Large File Support)
Suporte a inteiros de 64 bits
Strings de até 2^31
Novo Gerenciamento de Memória
Nova implementação de Threads
Otimização de Estruturas de Dados
Crédito:
Guilherme Blanco
Globalcode – Open4education
Sem a Árvore Sintática Abstrata
Crédito:
Nikita Popov
Globalcode – Open4education
Com a Árvore Sintática Abstrata
Crédito:
Nikita Popov
Globalcode – Open4education
PHP7
Processamento Memória
Globalcode – Open4education
Otimização de uso da Memória
Reduzir o número de alocações:
PHP gasta ~20% do tempo alocando memória
Memória
Crédito:
Nikita Popov
Globalcode – Open4education
Acesso à memória:
Crédito:
Nikita Popov
Globalcode – Open4education
Acesso à memória:
Crédito:
Nikita Popov
Globalcode – Open4education
Acesso à memória:
Crédito:
Nikita Popov
Globalcode – Open4education
Acesso à memória:
Crédito:
Nikita Popov
Globalcode – Open4education
Acesso à memória:
Crédito:
Nikita Popov
Globalcode – Open4education
Redução de Indireção
Crédito:
Nikita Popov
O que
você tem
O que
você quer
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Crédito:
Nikita Popov
Globalcode – Open4education
Futuro
PSR
RFCs
is_countable
Arrays iniciando com índice negativo
Heredoc e nowdoc flexíveis
Vírgula no último argumento da função/método
Atribuição por referência em list...
...
Globalcode – Open4education
Futuro
Parâmetros nomeados (Named parameters)
Visibilidade de classes (Class Visibility)
Tipagem de propriedades (Typed properties)
Anotações (Annotations)
Coleções (Collections)
Estruturas genéricas (Generics)
Crédito:
Guilherme Blanco
Globalcode – Open4education
Sério: Atualize!
Globalcode – Open4education
Trilha PHP – Florianópolis 2018
Cassio Santos
GitHub: @cassiosantos LinkedIn: cassiodossantos
Twitter: @cassiosantos Facebook: cassiosantos
Globalcode – Open4education
Links:
http://museum.php.net/php1/
https://www.youtube.com/watch?v=vpqNw91eD1c
http://php.net/manual/en/history.php.php
http://hacklang.org/
https://web.archive.org/web/20130728125152/http:/
/itc.conversationsnetwork.org/shows/detail58.html
Globalcode – Open4education
Mais links:
https://seld.be/notes/php-versions-stats-2017-2-
edition
https://getcomposer.org/
https://phalconphp.com/en/
https://www.youtube.com/watch?v=M8Ktic5sPlo
https://wiki.php.net/rfc#accepted

TDC Florianópolis 2018 - Trilha PHP - O que mudou internamente no PHP7 ?