SlideShare uma empresa Scribd logo
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 04
profwtelles
 
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 php
Tiago 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 01
thomasdacosta
 
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
Tchelinux
 
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
thomasdacosta
 
LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07LabMM3 - Aula teórica 07
LabMM3 - Aula teórica 07
Carlos Santos
 
2 controle-de-fluxo
2 controle-de-fluxo2 controle-de-fluxo
2 controle-de-fluxo
Thiago Oliveira
 
(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
Carlos Santos
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
diogoa21
 
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 Java
Luiz 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_2003
Henoc Freire
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
diogoa21
 
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
Inael 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-Aula2
Elvis 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 shell
Fá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 c
Clausia 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 tecnologia
tdc-globalcode
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php
Almir 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

Halloween pumpkins
Halloween pumpkinsHalloween pumpkins
Halloween pumpkins
Adriana Nastase
 
Steve Jobs Quotes
Steve Jobs QuotesSteve Jobs Quotes
Steve Jobs Quotes
Kumar Gauraw
 
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
 
PEA JENNIFER
PEA JENNIFERPEA JENNIFER
PEA JENNIFER
Jennifer Gordón
 
vu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulcienevu2015konf_Alonderiene sulciene
vu2015konf_Alonderiene sulciene
SUEFUSK
 
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 pusmetis
Rasa Januskeviciene
 
Benasque in winter by xavi
Benasque in winter by xaviBenasque in winter by xavi
Benasque in winter by xavi
BoroTuset
 
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 countries
SlideTeam.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
 
SWEPT AWAY
SWEPT AWAYSWEPT AWAY
SWEPT AWAY
dhilip raju
 
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 MILLIONAIRE
dhilip raju
 
THE CLOSE ENCOUNTER
THE CLOSE ENCOUNTERTHE CLOSE ENCOUNTER
THE CLOSE ENCOUNTER
dhilip raju
 
THE CRY OF THE CHILDREN
THE CRY OF THE CHILDRENTHE CRY OF THE CHILDREN
THE CRY OF THE CHILDREN
dhilip 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 2017
Vitor 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 PHP
iMasters
 
Aula3
Aula3Aula3
Aula3
softeam
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
Rafael Farias Silva
 
Mini Curso de PHP
Mini Curso de PHPMini 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
Diego Tremper
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
Andre Golvea
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
Henrique Moody
 
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
Bruno Fernandes "PorKaria"
 
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
Michele 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 - 2014
Michael 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 3
Flávio Lisboa
 
Php
PhpPhp
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
Diego Tremper
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
B&R Consultoria Empresarial
 
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
Luís Cobucci
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
Freedom DayMS
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPeste
Vitor 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

Curso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JSCurso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JS
Luis Gustavo Almeida
 
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
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 Routes
Luis Gustavo Almeida
 
Criando uma blockchain com PHP
Criando uma blockchain com PHPCriando uma blockchain com PHP
Criando uma blockchain com PHP
Luis Gustavo Almeida
 
Php criptomoedas e blockchain
Php criptomoedas e blockchainPhp criptomoedas e blockchain
Php criptomoedas e blockchain
Luis 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 - Hacking
Luis Gustavo Almeida
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
Luis 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.