Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Novidades do PHP 7.4

Igor Duarte
September 14, 2019

Novidades do PHP 7.4

Evento: Meetup PHPRS em Taquara
Irei abordar brevemente o histórico do PHP até os dias atuais.
E mostrar quais as novidades e depreciações vem por aí na nova versão 7.4.
E também vamos ver o que podemos esperar do PHP 8!!

Igor Duarte

September 14, 2019
Tweet

More Decks by Igor Duarte

Other Decks in Technology

Transcript

  1. • Sistemas de Informação - ULBRA • Software Developer •

    Developer há 6 anos • Coordenador da Comunidade • Escritor • Criador de ElePHPants • Gamer nas horas vagas ;) Igor Santos
  2. TIMELINE PHP PHP 1 1995 PHP/FI 2 1997 PHP 3

    1998 PHP 4 2000 PHP 5 2004 PHP 5.1 2005 PHP 5.2 2006 PHP 5.3 2009 PHP 5.4 2012 PHP 5.5 2013 PHP 5.6 2014
  3. TIMELINE PHP PHP 7 2015 PHP 7.1 2016 PHP 7.2

    2017 PHP 7.3 2018 PHP 7.4 2019 PHP 8 2020*
  4. PRELOADING O pré - carregamento é o processo de carregamento

    de bibliotecas e estruturas no OPCache na inicialização do módulo (servidor). Ou seja, esses arquivos são carregados na inicialização do servidor, são executados antes de qualquer aplicativo e ficam disponíveis para solicitações futuras. Isso nos traz ganhos de desempenho significativos. O preloading é controlado pela diretiva opcache.preload no arquivo .ini, Esta diretiva especifica um script PHP a ser compilado e executado na inicialização do servidor. Este arquivo pode ser usado para pré-carregar arquivos adicionais ou através da opcache_compile_file().
  5. TYPES PROPERTIES As propriedades tipadas ou typed properties é uma

    das funcionalidades mais esperadas do PHP 7.4. Ela permite especificar o tipo da propriedade de uma classe ou o tipo de uma variável que se espera que seja passada para uma função ou método de classe.
  6. TYPES PROPERTIES O que aconteceria ao executar este trecho de

    código? Fatal error: Uncaught TypeError: Typed property User::$name must be string, array used in /src/example.php:10
  7. ARROW FUNCTIONS Propõe a introdução da sintaxe mais curta e

    clara das arrow functions (funções das setas), que devem otimizar a clareza do código. =>
  8. NULL COALESCING ASSIGNMENT OPERATOR O PHP possui suporte ao operador

    null coalesce desde a versão 7.0 da linguagem. A funcionalidade permite verificar se uma variável foi definida e se não é nula. Em caso positivo, utiliza-se o valor da variável para uma atribuição e, caso contrário, utiliza-se um valor padrão. =>
  9. SPREAD OPERATOR IN ARRAYS O PHP possui suporte ao argument

    unpacking desde a versão 5 da linguagem. A funcionalidade permite o "desempacotamento" de um array (ou um Traversable) em uma lista de argumentos utilizando o spread operator.
  10. SPREAD OPERATOR IN ARRAYS A partir da versão 7.4 será

    introduzida a funcionalidade que permite a utilização do spread operator (...) na definição de um array através do unpacking dos valores de outro array ou um Traversable.
  11. NUMERIC LITERAL SEPARATOR Ative a legibilidade aprimorada do código, suportando

    um sublinhado entre dígitos em literais numéricos. Mais detalhes em: https://wiki.php.net/rfc/numeric_literal_separator
  12. WEAKREFERENCE Permite manter uma referência a um objeto que não

    impede que o próprio objeto seja destruído.
  13. FFI FOREIGN FUNCTION INTERFACE permite carregar bibliotecas compartilhadas, chamar funções

    C e utilizar estruturas de dados C, em scripts PHP puro. Segundo a RFC: É uma maneira de escrever extensões e integrações PHP para bibliotecas em C utilizando PHP puro. Mais detalhes em: https://wiki.php.net/rfc/ffi
  14. MELHORIAS NO PROCESSO DE VOTAÇÃO RFC Tecnicamente, isso não é

    uma atualização relacionada ao PHP 7.4 . embora valha a pena mencionar: as regras de votação para as RFCs foram alteradas. Eles sempre precisam de uma maioria de 2/3 dos votos para aprovar. E não há períodos de votação mais curtos, todas as RFCs devem estar abertas por pelo menos 2 semanas.
  15. ENTÃO... Como já estamos cansados de saber o PHP 7

    nos trouxe um grande avanço em termos de performance e a cada nova release temos um aumento significativo. Assim como sabemos teremos a inclusão do Preloading que com certeza irá impactar de forma positiva na performance da nova versão. https://medium.com/@IgorSantos17/novidades-do-php-7-4-27f55f3e37bf
  16. J I T A compilação Just In Time é uma

    maneira de otimizar o código de execução. É um método popular usado pela Java Virtual Machine (JVM), bem como a popular V8 JavaScript VM do Google. Mais detalhes em: https://wiki.php.net/rfc/jit