SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Gustavo Almeida
Migrando para PHP7
Prazer, meu nome é Gustavo!
Porque PHP7?
Se por acaso não te interessa velocidade ...
● Tipagem : Indução de tipos primitivos e tipos de retorno.
● Novos operadores.
● Erros e exceções.
Para instalar o PHP7 via apt-get :
● sudo add-apt-repository ppa:ondrej/php
● sudo apt-get update
● sudo apt-get install php7.0
● sudo apt-get install php7.0-mysql
1 - Tipagem - function f(int $a, float $b)
O default é sem
strict_types
Conversão Implicita
de tipos do PHP
está valendo.
Colocando a declaração com
declare, somente o tipo
especificado é permitido.
1 - Tipagem - function f(int $a): string
Sem strict_types ele faz
a conversão implicita.
De int para string: ok
De int para array: erro
Neste caso como
declaramos strict_types ele
só admite se for do tipo
especificado.
2 - Palavras Reservadas
3 - Depreciados
● Construct PHP4
● Tags alternativas (fica só a tradicional <?php )
● extensão mysql,mssql
● ereg
4 - Operadores
● …
● ??
● u
● <=>
4 - Splat (...) - esse é do 5.6, ok?
Média aritmética numa só linha !!!
4 - Null Coalescing (??)
se o primeiro for falso, então o resultado será o segundo
5 - Unicode escape syntax (u)
Até na linha de comando
aparecem as figuras. Adeus
icones com imagens
6 - Spaceshift (<=>) - quando usar ?
ORDENAÇÃO
7 - define e session_start aceitam arrays
session_start([ ]);
ex. PDO 1 linha equivale a 4
8 - intdiv
9 - Agrupamento de use
vários use em uma
única linha
10 - Erros fatais não travam o PHP7
● Erros Fatais travam o PHP5.
● No PHP7 Erros Fatais agora são Exceções
● Agora isso mudou - Pode-se estender a Interface Throwable.
● set_error_handler() e set_exception_handler() são chamadas caso ninguém trate o erro.
try{
#Cod pode lançar Exception/Error
}catch(Throwable $t){
#executado no PHP7
}catch(Exception $e){
#executado no PHP5
}finally{
#executado de qq maneira
}
10 - Erros fatais não travam o PHP7
10 - Extendendo a Interface Throwable
interface MyPackageThrowable extends Throwable {}
class MyPackageException extends Exception implements MyPackageThrowable {}
function add(int $num1, int $num2) {
if($num1 < 0){
throw new MyPackageException(Num 1 < 0');
}
return $num1 + $num2;
}
Quebras de compatibilidade
expressão PHP5 PHP7
$$foo[‘bar’][‘baz’] ${$foo[‘bar’][‘baz’]} ($$foo)[‘bar’][‘baz’]
$foo->$bar[‘baz’] $foo->{$bar[‘baz’]} ($foo->$bar)[‘baz’]
$foo->$bar[‘baz’]() $foo->{$bar[‘baz’]}() ($foo->$bar)[‘baz’]()
Foo::$bar[‘baz’]() Foo::{$bar[‘baz’]}() (Foo::$bar)[‘baz’]()
Outras maneiras de acessar variáveis, propriedades e métodos.
Mudanças internas
● Árvore de sintaxe abstrata
● suporte 64 bits (LFS, strings > 2e31, inteiros de 64 bits).
● gerenciamento de memória.
● implementação de segurança sobre threads.
● estrutura de dados.
PHP 7.1 - mais novidades
● Tipos Nulos
function getName() : ? string {
return $this->name;
}
function getName(? User $user) : string {
return $user->name;
}
if(is_null($param)){
#....
}
PHP 7.1
● Desconstrução do array - parecido com list()
$response = [‘nome’=>’PHP-Conf’ , ‘ano’=>2016, ‘local’=>’SP’];
[‘nome’=>$nome , ‘ano’=>$ano, ‘local’=>’$local] = $response;
echo $nome;
PHP 7.1
● mais um tipo - void
function naoRetornaValor(string $email, string $msg): void{
mail($email, $msg);
}
PHP 7.1
● visibilidade de constantes (public, protected, private)
Class Imposto{
protected const TAXA=10;
//
}
Class ImpostoSP extends Imposto{
private const TAXA=20;
//
}
Class ImpostoRJ extends Imposto{
private const TAXA=30;
//
}
PHP 7.1
● agrupamento de exceções
try{
$gateway->send($cartao,$data,$cvv);
} catch(
DinheiroInsuficienteException |
ClienteNegativadoException |
ProdutoEmFaltaException |
NaoToAfimDeVenderException $e
)
{
$erro = “Desculpa , erro no pagto”;
}
github: lga37
slideshare: lga33
br.linkedin.com/in/lga37

Mais conteúdo relacionado

Mais procurados

Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04profwtelles
 
T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)Carlos Santos
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpTiago Davi
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01thomasdacosta
 
Testes Unitários e fUnit - Felipe Nascimento
Testes Unitários e fUnit -  Felipe NascimentoTestes Unitários e fUnit -  Felipe Nascimento
Testes Unitários e fUnit - Felipe NascimentoTchelinux
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fontethomasdacosta
 
LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07Carlos Santos
 
(A09) LabMM3 - JavaScript - Estruturas de repetição
(A09) LabMM3 - JavaScript - Estruturas de repetição(A09) LabMM3 - JavaScript - Estruturas de repetição
(A09) LabMM3 - JavaScript - Estruturas de repetiçãoCarlos Santos
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)elliando dias
 
Programação "Estruturada" com Java
Programação "Estruturada" com JavaProgramação "Estruturada" com Java
Programação "Estruturada" com JavaLuiz Ricardo Silva
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003Henoc Freire
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Elvis Araújo
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellFábio dos Reis
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação cClausia Antoneli
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em PhpAlmir Mendes
 

Mais procurados (20)

Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04
 
T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 
Testes Unitários e fUnit - Felipe Nascimento
Testes Unitários e fUnit -  Felipe NascimentoTestes Unitários e fUnit -  Felipe Nascimento
Testes Unitários e fUnit - Felipe Nascimento
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07
 
2 controle-de-fluxo
2 controle-de-fluxo2 controle-de-fluxo
2 controle-de-fluxo
 
(A09) LabMM3 - JavaScript - Estruturas de repetição
(A09) LabMM3 - JavaScript - Estruturas de repetição(A09) LabMM3 - JavaScript - Estruturas de repetição
(A09) LabMM3 - JavaScript - Estruturas de repetição
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)
 
Programação "Estruturada" com Java
Programação "Estruturada" com JavaProgramação "Estruturada" com Java
Programação "Estruturada" com Java
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shell
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php
 

Destaque

Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...
Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...
Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...Knowledge Economy Forum
 
Funny Notices, Notices and Boards From Around The World!
Funny Notices, Notices and Boards From Around The World!Funny Notices, Notices and Boards From Around The World!
Funny Notices, Notices and Boards From Around The World!Kumar Gauraw
 
vu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulcienevu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulcieneSUEFUSK
 
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...Knowledge Economy Forum
 
2014-2015 neformali veikla II pusmetis
2014-2015 neformali veikla II pusmetis2014-2015 neformali veikla II pusmetis
2014-2015 neformali veikla II pusmetisRasa Januskeviciene
 
Benasque in winter by xavi
Benasque in winter by xaviBenasque in winter by xavi
Benasque in winter by xaviBoroTuset
 
Benasque in winter by nico r. and daniel o.
Benasque in winter by nico r. and daniel o.Benasque in winter by nico r. and daniel o.
Benasque in winter by nico r. and daniel o.BoroTuset
 
Europe editable continent map with countries
Europe editable continent map with countriesEurope editable continent map with countries
Europe editable continent map with countriesSlideTeam.net
 
Siriakovienes pranesimas vu_2013
Siriakovienes pranesimas vu_2013Siriakovienes pranesimas vu_2013
Siriakovienes pranesimas vu_2013SUEFUSK
 
Elsterienes pranesimas vu_2013
Elsterienes pranesimas vu_2013Elsterienes pranesimas vu_2013
Elsterienes pranesimas vu_2013SUEFUSK
 
Kelpsienes pranesimas vu_2013
Kelpsienes pranesimas vu_2013Kelpsienes pranesimas vu_2013
Kelpsienes pranesimas vu_2013SUEFUSK
 
Austienes pranesimas vu_2013
Austienes pranesimas vu_2013Austienes pranesimas vu_2013
Austienes pranesimas vu_2013SUEFUSK
 
Baltutienes pranesimas vu_2013
Baltutienes pranesimas vu_2013Baltutienes pranesimas vu_2013
Baltutienes pranesimas vu_2013SUEFUSK
 
PROSE - THE MODEL MILLIONAIRE
 PROSE - THE MODEL MILLIONAIRE PROSE - THE MODEL MILLIONAIRE
PROSE - THE MODEL MILLIONAIREdhilip raju
 
THE CLOSE ENCOUNTER
THE CLOSE ENCOUNTERTHE CLOSE ENCOUNTER
THE CLOSE ENCOUNTERdhilip raju
 
THE CRY OF THE CHILDREN
THE CRY OF THE CHILDRENTHE CRY OF THE CHILDREN
THE CRY OF THE CHILDRENdhilip raju
 

Destaque (20)

Halloween pumpkins
Halloween pumpkinsHalloween pumpkins
Halloween pumpkins
 
Steve Jobs Quotes
Steve Jobs QuotesSteve Jobs Quotes
Steve Jobs Quotes
 
Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...
Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...
Lietuvos sveikatos mokslų universiteto gimnazija. Diferencijuoto mokymo/si ap...
 
Funny Notices, Notices and Boards From Around The World!
Funny Notices, Notices and Boards From Around The World!Funny Notices, Notices and Boards From Around The World!
Funny Notices, Notices and Boards From Around The World!
 
PEA JENNIFER
PEA JENNIFERPEA JENNIFER
PEA JENNIFER
 
vu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulcienevu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulciene
 
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...
Vilniaus Ozo gimnazija. Tiesioginės transliacijos mokiniams, neturintiems gal...
 
2014-2015 neformali veikla II pusmetis
2014-2015 neformali veikla II pusmetis2014-2015 neformali veikla II pusmetis
2014-2015 neformali veikla II pusmetis
 
Benasque in winter by xavi
Benasque in winter by xaviBenasque in winter by xavi
Benasque in winter by xavi
 
Benasque in winter by nico r. and daniel o.
Benasque in winter by nico r. and daniel o.Benasque in winter by nico r. and daniel o.
Benasque in winter by nico r. and daniel o.
 
Europe editable continent map with countries
Europe editable continent map with countriesEurope editable continent map with countries
Europe editable continent map with countries
 
Siriakovienes pranesimas vu_2013
Siriakovienes pranesimas vu_2013Siriakovienes pranesimas vu_2013
Siriakovienes pranesimas vu_2013
 
Elsterienes pranesimas vu_2013
Elsterienes pranesimas vu_2013Elsterienes pranesimas vu_2013
Elsterienes pranesimas vu_2013
 
Kelpsienes pranesimas vu_2013
Kelpsienes pranesimas vu_2013Kelpsienes pranesimas vu_2013
Kelpsienes pranesimas vu_2013
 
SWEPT AWAY
SWEPT AWAYSWEPT AWAY
SWEPT AWAY
 
Austienes pranesimas vu_2013
Austienes pranesimas vu_2013Austienes pranesimas vu_2013
Austienes pranesimas vu_2013
 
Baltutienes pranesimas vu_2013
Baltutienes pranesimas vu_2013Baltutienes pranesimas vu_2013
Baltutienes pranesimas vu_2013
 
PROSE - THE MODEL MILLIONAIRE
 PROSE - THE MODEL MILLIONAIRE PROSE - THE MODEL MILLIONAIRE
PROSE - THE MODEL MILLIONAIRE
 
THE CLOSE ENCOUNTER
THE CLOSE ENCOUNTERTHE CLOSE ENCOUNTER
THE CLOSE ENCOUNTER
 
THE CRY OF THE CHILDREN
THE CRY OF THE CHILDRENTHE CRY OF THE CHILDREN
THE CRY OF THE CHILDREN
 

Semelhante a Migrando para PHP7 - Novidades

Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPiMasters
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessRafael Farias Silva
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
 
15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrerMichele Silva
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3Flávio Lisboa
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e FuturoFreedom DayMS
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPesteVitor Mattos
 
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!tdc-globalcode
 

Semelhante a Migrando para PHP7 - Novidades (20)

Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHP
 
Aula3
Aula3Aula3
Aula3
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 
Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6
 
15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3
 
Php
PhpPhp
Php
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPeste
 
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
TDC2016 | Trilha PHP - Xdebug: Seus problemas acabaram!
 

Mais de Luis Gustavo Almeida

Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesLuis Gustavo Almeida
 
Palestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingPalestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingLuis Gustavo Almeida
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Luis Gustavo Almeida
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Luis Gustavo Almeida
 

Mais de Luis Gustavo Almeida (9)

Curso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JSCurso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JS
 
Php curl - Coleta de dados na web
Php curl - Coleta de dados na webPhp curl - Coleta de dados na web
Php curl - Coleta de dados na web
 
Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e Routes
 
Criando uma blockchain com PHP
Criando uma blockchain com PHPCriando uma blockchain com PHP
Criando uma blockchain com PHP
 
Php criptomoedas e blockchain
Php criptomoedas e blockchainPhp criptomoedas e blockchain
Php criptomoedas e blockchain
 
Palestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingPalestra de segurança em PHP - Hacking
Palestra de segurança em PHP - Hacking
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 

Migrando para PHP7 - Novidades

  • 2. Prazer, meu nome é Gustavo!
  • 4. Se por acaso não te interessa velocidade ... ● Tipagem : Indução de tipos primitivos e tipos de retorno. ● Novos operadores. ● Erros e exceções. Para instalar o PHP7 via apt-get : ● sudo add-apt-repository ppa:ondrej/php ● sudo apt-get update ● sudo apt-get install php7.0 ● sudo apt-get install php7.0-mysql
  • 5. 1 - Tipagem - function f(int $a, float $b) O default é sem strict_types Conversão Implicita de tipos do PHP está valendo. Colocando a declaração com declare, somente o tipo especificado é permitido.
  • 6. 1 - Tipagem - function f(int $a): string Sem strict_types ele faz a conversão implicita. De int para string: ok De int para array: erro Neste caso como declaramos strict_types ele só admite se for do tipo especificado.
  • 7. 2 - Palavras Reservadas
  • 8. 3 - Depreciados ● Construct PHP4 ● Tags alternativas (fica só a tradicional <?php ) ● extensão mysql,mssql ● ereg
  • 9. 4 - Operadores ● … ● ?? ● u ● <=>
  • 10. 4 - Splat (...) - esse é do 5.6, ok? Média aritmética numa só linha !!!
  • 11. 4 - Null Coalescing (??) se o primeiro for falso, então o resultado será o segundo
  • 12. 5 - Unicode escape syntax (u) Até na linha de comando aparecem as figuras. Adeus icones com imagens
  • 13. 6 - Spaceshift (<=>) - quando usar ? ORDENAÇÃO
  • 14. 7 - define e session_start aceitam arrays session_start([ ]); ex. PDO 1 linha equivale a 4
  • 16. 9 - Agrupamento de use vários use em uma única linha
  • 17. 10 - Erros fatais não travam o PHP7 ● Erros Fatais travam o PHP5. ● No PHP7 Erros Fatais agora são Exceções ● Agora isso mudou - Pode-se estender a Interface Throwable. ● set_error_handler() e set_exception_handler() são chamadas caso ninguém trate o erro.
  • 18. try{ #Cod pode lançar Exception/Error }catch(Throwable $t){ #executado no PHP7 }catch(Exception $e){ #executado no PHP5 }finally{ #executado de qq maneira } 10 - Erros fatais não travam o PHP7
  • 19. 10 - Extendendo a Interface Throwable interface MyPackageThrowable extends Throwable {} class MyPackageException extends Exception implements MyPackageThrowable {} function add(int $num1, int $num2) { if($num1 < 0){ throw new MyPackageException(Num 1 < 0'); } return $num1 + $num2; }
  • 20. Quebras de compatibilidade expressão PHP5 PHP7 $$foo[‘bar’][‘baz’] ${$foo[‘bar’][‘baz’]} ($$foo)[‘bar’][‘baz’] $foo->$bar[‘baz’] $foo->{$bar[‘baz’]} ($foo->$bar)[‘baz’] $foo->$bar[‘baz’]() $foo->{$bar[‘baz’]}() ($foo->$bar)[‘baz’]() Foo::$bar[‘baz’]() Foo::{$bar[‘baz’]}() (Foo::$bar)[‘baz’]() Outras maneiras de acessar variáveis, propriedades e métodos.
  • 21. Mudanças internas ● Árvore de sintaxe abstrata ● suporte 64 bits (LFS, strings > 2e31, inteiros de 64 bits). ● gerenciamento de memória. ● implementação de segurança sobre threads. ● estrutura de dados.
  • 22. PHP 7.1 - mais novidades ● Tipos Nulos function getName() : ? string { return $this->name; } function getName(? User $user) : string { return $user->name; } if(is_null($param)){ #.... }
  • 23. PHP 7.1 ● Desconstrução do array - parecido com list() $response = [‘nome’=>’PHP-Conf’ , ‘ano’=>2016, ‘local’=>’SP’]; [‘nome’=>$nome , ‘ano’=>$ano, ‘local’=>’$local] = $response; echo $nome;
  • 24. PHP 7.1 ● mais um tipo - void function naoRetornaValor(string $email, string $msg): void{ mail($email, $msg); }
  • 25. PHP 7.1 ● visibilidade de constantes (public, protected, private) Class Imposto{ protected const TAXA=10; // } Class ImpostoSP extends Imposto{ private const TAXA=20; // } Class ImpostoRJ extends Imposto{ private const TAXA=30; // }
  • 26. PHP 7.1 ● agrupamento de exceções try{ $gateway->send($cartao,$data,$cvv); } catch( DinheiroInsuficienteException | ClienteNegativadoException | ProdutoEmFaltaException | NaoToAfimDeVenderException $e ) { $erro = “Desculpa , erro no pagto”; }
  • 27.