O documento discute as principais mudanças e melhorias propostas para as versões futuras do PHP, incluindo PHP 7.4 e PHP 8.0. Algumas RFCs aprovadas incluem propriedades tipadas, referências fracas, pré-carregamento sem sobrecarga e arrays começando com índices negativos. O documento também explica como o PHP evolui através do processo de RFCs e como outras linguagens como Java, Python e Rust fazem processo semelhante de melhoria.
Nessa palestra apresentarei o que mudou e por que mudou na nova major version do PHP. Grandes mudanças possibilitaram uma melhor padronização da linguagem, novas possibilidades e encorparam ainda mais esse universo que temos.
Novidades, mudanças, notícias e incompatibilidades do PHP7.
Palestra na semana global do empreendedorismo na Plug and work
https://eventioz.com.br/e/desenvolvendo-prototipos-de-startups-em-python
Esta palestra tem a proposta de apresentar a linguagem Python como solução para o desenvolvimento de protótipos e MVP para startups. Mostrar como empreendedores podem desenvolver seus próprios protótipos sem dependender da contratação de desenvolvedores profissionais e ter seu MVP funcionando em poucos dias com a ajuda de Python e seus web frameworks.
Nessa palestra apresentarei o que mudou e por que mudou na nova major version do PHP. Grandes mudanças possibilitaram uma melhor padronização da linguagem, novas possibilidades e encorparam ainda mais esse universo que temos.
Novidades, mudanças, notícias e incompatibilidades do PHP7.
Palestra na semana global do empreendedorismo na Plug and work
https://eventioz.com.br/e/desenvolvendo-prototipos-de-startups-em-python
Esta palestra tem a proposta de apresentar a linguagem Python como solução para o desenvolvimento de protótipos e MVP para startups. Mostrar como empreendedores podem desenvolver seus próprios protótipos sem dependender da contratação de desenvolvedores profissionais e ter seu MVP funcionando em poucos dias com a ajuda de Python e seus web frameworks.
Introdução a linguagem JavaScript desvendando a história e as principais características da linguagem.
Assista a série Desvendando a linguagem JavaScript no meu canal no YouTube: https://www.youtube.com/user/rodrigobranas/videos
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Mini-palestra ministrada no stand do SERPRO no 16º FISL sobre as novidades do PHP7, a nova versão da linguagem que deve estar disponível em Outubro de 2015.
Com a iminente chegada da major mais importante da linguagem em muito tempo, saiba o que muda, quais são as novidades, o que vai quebrar, como são decididas as mudanças e principalmente onde obter mais informações!
Essa palestra aborda a necessidade e os desafios na hora de refatorar uma aplicação em PHP, vemos um pouco dos conhecimentos necessários para iniciar esse processo e como devemos arquitetar cada etapa do desenvolvimento. Cada aplicação possui uma realidade diferente por isso será passado um de forma breve os conceitos de SOLID, Design Petterns e Object Calisthenic para poder aplica-los na arquitetura de cada projeto. Além de exemplos de refatoração em pontos específicos da aplicação.
BDD: Torne viva a documentação de seus sistemasVitor Mattos
Veremos um pouco de tudo, uma apresentação da importância de se fazer testes, testes unitários, testes funcionais, pirâmide de testes, como fazer com que os testes se tornem uma documentação viva de um sistema, como escrever testes com gherkin, a ferramenta behat para escrita de testes funcionais e uma pincelada rápida sobre CI, CD e como implementar a cultura de testes em ambientes hostis a testes.
Palestra apresentada no PHPRS 2017
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
Sabe aquele arquivo com 5000000 linhas e que você tem que acender umas velas pra abrir ele? Então, aqui te daremos as armas corretas para exterminá-lo e para NUNCA MAIS criar monstros como ele!
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
Ari Stopassola Jr, Analista de Sistemas do perito.inf.br, fez a palestra "Rumo à Certificação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Introdução a linguagem JavaScript desvendando a história e as principais características da linguagem.
Assista a série Desvendando a linguagem JavaScript no meu canal no YouTube: https://www.youtube.com/user/rodrigobranas/videos
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Mini-palestra ministrada no stand do SERPRO no 16º FISL sobre as novidades do PHP7, a nova versão da linguagem que deve estar disponível em Outubro de 2015.
Com a iminente chegada da major mais importante da linguagem em muito tempo, saiba o que muda, quais são as novidades, o que vai quebrar, como são decididas as mudanças e principalmente onde obter mais informações!
Essa palestra aborda a necessidade e os desafios na hora de refatorar uma aplicação em PHP, vemos um pouco dos conhecimentos necessários para iniciar esse processo e como devemos arquitetar cada etapa do desenvolvimento. Cada aplicação possui uma realidade diferente por isso será passado um de forma breve os conceitos de SOLID, Design Petterns e Object Calisthenic para poder aplica-los na arquitetura de cada projeto. Além de exemplos de refatoração em pontos específicos da aplicação.
BDD: Torne viva a documentação de seus sistemasVitor Mattos
Veremos um pouco de tudo, uma apresentação da importância de se fazer testes, testes unitários, testes funcionais, pirâmide de testes, como fazer com que os testes se tornem uma documentação viva de um sistema, como escrever testes com gherkin, a ferramenta behat para escrita de testes funcionais e uma pincelada rápida sobre CI, CD e como implementar a cultura de testes em ambientes hostis a testes.
Palestra apresentada no PHPRS 2017
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
Sabe aquele arquivo com 5000000 linhas e que você tem que acender umas velas pra abrir ele? Então, aqui te daremos as armas corretas para exterminá-lo e para NUNCA MAIS criar monstros como ele!
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
Ari Stopassola Jr, Analista de Sistemas do perito.inf.br, fez a palestra "Rumo à Certificação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Um estudo comparativo entre frameworks PHP, analisando as diferentes abordagens, vantagens e desvantagens de cada um deles, a fim de entender em que situações cada um deles é mais adequado para uma aplicação.
Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.
Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;
20. PHP 4.3
A nova versão 2.5 do Wordpress lançada em 29 de março de
2008 mudou os requisitos mínimos da versão 4.2 para 4.3 do
PHP.
Último patch da versão 4.3 do PHP lançado em 31 de março
de 2005.
21. PHP 4.3
A nova versão 2.5 do Wordpress lançada em 29 de março de
2008 mudou os requisitos mínimos da versão 4.2 para 4.3 do
PHP.
Último patch da versão 4.3 do PHP lançado em 31 de março
de 2005.
11 anos
14 anos
( https://codex.wordpress.org/Version_2.5 )
( https://www.php.net/releases#4.3.11 )
26. Internals
Mailing List
A medium volume list for those
who want to help out with the
development of PHP
( https://www.php.net/mailing-lists.php#internals )
29. RFC
● Introdução
● Proposta
● Quebras de
compatibilidade com as
versões anteriores
● Limitações
● Versão alvo
● Impacto
● Pull Request
● Comparações /
Referências
● O que mais o autor achar
válido
42. Abolish Narrow Margins
Proposta para abolir votações com o
critério “50% + 1 voto”.
( Criado em 17 de novembro de 2016, votação encerrada em 22 de fevereiro de
2019. )
https://wiki.php.net/rfc/abolish-narrow-margins
43. Abolish Short Votes
Proposta para abolir períodos de votação
menores do que duas semanas.
(Criado em 21 de março de 2019, votações terminaram em: 22 de abril de 2019)
https://wiki.php.net/rfc/abolish-short-votes
46. ● A extensão permite o acesso a
sistemas de banco de dados
baseados no InterBase e
sistemas baseados no Firebird.
● Existe uma extensão PDO para
acessar os mesmos sistemas de
banco de dados com um
back-end PDO, no entanto, para
esta RFC, apenas a extensão
ext/interbase está em questão.
Remover o InterBase e WDDX do Core
● Deprecate and remove
ext/interbase
● Unbundle ext/wddx
● A extensão InterBase para PHP
(ext/interbase) é uma das mais
antigas extensões de banco de
dados que atualmente residem
no Core.
47. ● weakrefs
● Referências fracas permitem ao
programador manter uma
referência a um objeto que não
impede que o objeto seja
destruído;
Referências Fracas
● Eles são úteis para implementar
estruturas semelhantes a cache.
Eles são atualmente suportados
no PHP por extensão.
48. Propriedades Tipadas 2.0
● Typed Properties 2.0
Com a introdução de tipos
escalares e tipos de retorno, o
PHP 7 aumentou muito o poder
do sistema de tipos do PHP.
● No entanto, não era possível
declarar os tipos de
propriedades de classe, forçando
os desenvolvedores a usar os
métodos getter e setter para
impor contratos de tipo.
● Isso requer um boilerplate
desnecessário, tornando o uso
menos ergonômico e
prejudicando o desempenho.
● Esta RFC resolve esse problema
introduzindo suporte para
declarações de tipo de
propriedade.
53. // The following lines are doing the same
$this->request->data['comments']['user_id'] =
$this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names,
// the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
54. Pré-carregamento sem sobrecarga
● Preloading
● Pré-carregar funções e classes
do PHP uma vez e usá-las no
contexto de qualquer solicitação
futura sem sobrecarga.
● Nova diretiva do php.ini
“opcache.preload”
55. ext/hash sempre disponível
● Always available hash extension
● Propõe manter a extensão hash
sempre disponível no PHP assim
como as extensões `date`, `spl` e
`pcre`.
56. ● Password Hash Registry
● Torna os mecanismos usado por
password_hash/verify/etc…
extensível por outros módulos
Mudanças no password_hash
58. Reflection para Referências
● Reflection for references
● Bibliotecas especializadas que
executam operações como
dumping, clonagem ou
comparação exigem a
capacidade de raciocinar sobre
referências ao PHP.
● Atualmente, o PHP não fornece
APIs para esse propósito,
forçando as bibliotecas a usar
formas indiretas de detectar
referências e igualdades de
referência.
59. Nova serialização personalizada
● New custom object serialization
mechanism
● Introduz novo mecanismo de
serialização de objeto
personalizado para substituir
Serializable
public function
__serialize(): array;
public function
__unserialize(array $data):
void;
60. Covariant Returns and Contravariant Parameters
interface A {
function m(B $z);
}
interface B extends A {
// permitted
function m($z): A;
}
interface X {
function m(Y $z): X;
}
interface Y extends X {
// not permitted but type-safe
function m(X $z): Y;
}
https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters
65. Consistent type errors for internal
functions
Um TypeError será lançado em vez de um Warning se os parâmetros
digitados incorretamente forem passados para uma função, que é uma
alteração incompatível com versões anteriores.
Hoje: método do usuário TypeError e funções internas por padrão lançam
um Warning e retornam null.
https://wiki.php.net/rfc/consistent_type_errors
67. Arrays starting with a negative index
<?php
array(3) {
[-2]=> bool(true)
[0]=> bool(true)
[1]=> bool(true)
}
Atualmente
https://wiki.php.net/rfc/negative_array_index
68. Arrays starting with a negative index
<?php
array(3) {
[-2]=> bool(true)
[-1]=> bool(true)
[0]=> bool(true)
}
Proposto
https://wiki.php.net/rfc/negative_array_index
69. JIT
1. Não dá mais para aumentar a performance
sem usar JIT
2. Em cenários não relacionados com a web o
ganho de memória pode ser útil
3. Com o JIT poderemos desenvolver extensões
usando PHP em vez de C
70. JIT
“it currently doesn't seem to significantly improve real-life apps
like WordPress (with opcache.jit=1235 326 req/sec vs 315
req/sec)”
https://wiki.php.net/rfc/jit