SlideShare uma empresa Scribd logo
Zephir 
Linguagem 
de 
Programação 
de 
alto 
nível 
para 
criar 
extensões 
para 
PHP 
@lgavinho
http://zephir-lang.com/ 
0.4.2 alpha 
Zend 
Engine 
/ 
PHP 
/ 
Intermediate 
@lgavinho
Zephir 
= 
Phalcon 
2 
• Reduzir 
o 
tempo 
de 
desenvolvimento 
• Fazer 
código 
menos 
propenso 
a 
erros 
de 
codificação 
• PermiEr 
que 
mais 
membros 
da 
comunidade 
possam 
se 
envolver 
• PermiEr 
que 
mais 
usuários 
do 
Phalcon 
possam 
ler 
e 
entender 
como 
uma 
funcionalidade 
é 
implementada 
• PermiEr 
aos 
desenvolvedores 
Erar 
mais 
proveito 
da 
estrutura 
e 
uma 
total 
compreensão 
de 
como 
ele 
funciona 
• Apresentar 
potencial 
de 
refatoração 
e 
oEmizações 
sem 
afetar 
a 
estabilidade 
• Adaptar 
facilmente 
o 
código 
para 
novas 
versões 
do 
PHP 
• PermiEr 
contribuidores 
para 
implementar 
componentes 
adicionais 
@lgavinho
Começando... 
Instalar 
dependências 
$ 
sudo 
apt-­‐get 
update 
$ 
sudo 
apt-­‐get 
install 
git 
gcc 
make 
re2c 
php5 
php5-­‐json 
php5-­‐ 
dev 
libpcre3-­‐dev 
Instalar 
Json-­‐ 
C 
(compilar) 
$ 
git 
clone 
hYps://github.com/json-­‐c/json-­‐c.git 
$ 
cd 
json-­‐c 
$ 
sh 
autogen.sh 
$ 
./configure 
$ 
make 
&& 
sudo 
make 
install 
Instalar 
Zephir 
(compilar) 
$ 
git 
clone 
hYps://github.com/ 
phalcon/zephir 
$ 
cd 
zephir 
$ 
./install 
-­‐c 
hYp://blog.zephir-­‐lang.com/post/73772370742/installing-­‐tesEng-­‐zephir-­‐on-­‐vagrant 
@lgavinho
Zephir 
namespace 
Test; 
/** 
* 
MyTest 
(test/mytest.zep) 
*/ 
class 
MyTest 
{ 
public 
funcEon 
someMethod() 
{ 
/* 
Variables 
must 
be 
declared 
*/ 
var 
myArray; 
int 
i 
= 
0, 
length; 
/* 
Create 
an 
array 
*/ 
let 
myArray 
= 
["hello", 
0, 
100.25, 
false, 
null]; 
/* 
Count 
the 
array 
into 
a 
'int' 
variable 
*/ 
let 
length 
= 
count(myArray); 
/* 
Print 
value 
types 
*/ 
while 
i 
< 
length 
{ 
echo 
typeof 
myArray[i], 
"n"; 
let 
i++; 
} 
return 
myArray; 
} 
} 
• Proteção 
de 
código-­‐ 
fonte 
• Compilação 
possibilita 
idenEficar 
erros 
mais 
cedo 
• Baixa 
curva 
de 
aprendizado. 
Muito 
parecida 
com 
PHP. 
@lgavinho 
Exemplo 
de 
código 
em 
Zephir
Algumas 
caracterísEcas 
com 
foco 
no 
Programador 
• Orientada 
a 
objetos 
• Tipos 
estáEcos 
e 
dinâmicos 
• Análise 
estáEca 
de 
código 
• Organização 
em 
namespace 
• Parametros 
Read-­‐Only 
(const) 
• Type 
hints 
• Operador 
Fetch 
• Atalhos 
para 
geYer/seYer 
• Return 
Type 
hints 
@lgavinho
Type 
hints 
Type 
hint 
informa 
ao 
compilador 
qual 
classe 
está 
relacionado 
a 
uma 
variável 
dinâmica 
permiEndo 
que 
o 
compilador 
possarealizar 
mais 
verificações 
de 
compilação. 
// 
Tell 
the 
compiler 
that 
"o" 
// 
is 
an 
instance 
of 
class 
MyClass 
let 
o 
= 
<MyClass> 
this-­‐>_myObject; 
o-­‐>myMethod(); 
@lgavinho
Operador 
Fetch 
<?php 
if 
(isset($myArray[$key])) 
{ 
$value 
= 
$myArray[$key]; 
echo 
$value; 
} 
if 
fetch 
value, 
myArray[key] 
{ 
echo 
value; 
} 
zephir 
@lgavinho
Atalhos 
para 
geYer/seYer 
namespace 
App; 
class 
MyClass 
{ 
protected 
myProperty 
{ 
set, 
get, 
toString 
}; 
protected 
someProperty 
= 
10 
{ 
set, 
get 
}; 
} 
@lgavinho
Return 
type 
hints 
Definir 
Epos 
dos 
retornos 
dos 
métodos. 
Tipos 
escalares, 
classes 
e 
namespace 
App; 
class 
MyClass 
{ 
public 
funcEon 
getSomeData(a) 
-­‐> 
string|bool 
{ 
if 
a 
== 
false 
{ 
return 
false; 
} 
return 
"error"; 
} 
} 
void 
(sem 
retorno). 
@lgavinho
Algumas 
comparações 
com 
PHP 
ZEPHIR 
-­‐ 
3 
X 
MAIS 
RÁPIDO 
@lgavinho
Geração 
de 
código 
naEvo 
@lgavinho
Branch 
predicEon 
hints 
PermiEr 
oEmizar 
o 
processamento 
informando 
que 
uma 
condição 
raramente 
irá 
acontecer. 
let 
allPaths 
= 
[]; 
for 
path 
in 
this-­‐>_paths 
{ 
if 
unlikely 
path-­‐>isAllowed() 
== 
false 
{ 
throw 
new 
AppExcepEon("error!!"); 
} 
else 
{ 
let 
allPaths[] 
= 
path; 
} 
} 
@lgavinho
Outras 
caracterísEcas 
• Wrapper 
para 
funções 
customizadas 
oEmizadas 
em 
C 
• Arquivo 
de 
configuração: 
– 6 
parametros 
de 
oEmizações 
– saída 
no 
phpinfo() 
@lgavinho
Zephir 
não 
vai 
ser 
• Próxima 
linguagem 
de 
programação 
revolucionária. 
• SubsEtuição 
de 
PHP 
ou 
C 
(ou 
qualquer 
outra 
linguagem) 
• Ser 
a 
linguagem 
mais 
elegante 
e 
coerente 
disponível 
• Cobrir 
todos 
os 
recursos 
possíveis 
(atual 
ou 
futura) 
fornecido 
pelo 
PHP 
ou 
C 
• Implementar 
todos 
os 
recursos 
exatamente 
como 
no 
PHP 
ou 
C 
• Apoiar 
cada 
possível 
paradigma 
de 
programação 
• Fazer 
todos 
felizes 
@lgavinho
Pontos 
fracos 
• Tempo 
de 
compilação 
pode 
baixar 
produEvidade 
de 
desenvolvimento 
– Solução 
Zephir 
RunEme 
• Debug 
• Menos 
agilidade 
na 
atualização 
em 
produção 
(live). 
Requer 
restart 
do 
webserver. 
• Muito 
novo. 
@lgavinho
Então… 
• É 
muito 
rápido. 
É 
simples. 
• OEmizar 
algoritmos 
de 
alta 
demanda 
na 
aplicação. 
• Ganhar 
dinheiro 
desenvolvendo 
extensões 
permiEndo 
proteger 
seu 
código-­‐fonte. 
• Usar 
componentes 
em 
C 
facilmente 
no 
PHP. 
• E 
é 
muito 
rápido. 
@lgavinho

Mais conteúdo relacionado

Mais procurados

Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
Augusto Pascutti
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Rogério Moraes de Carvalho
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
Daniel Archer Marques Cramer
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
Felipe Ribeiro
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
Rafael Jaques
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
Raphael Donaire Albino
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Mario Guedes
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
Andreano Lanusse
 
Shell Script
Shell ScriptShell Script
Shell Script
Wellington Oliveira
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
Andréia Santos
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
Laís Lima
 
As Novidades do CSharp 5.0
As Novidades do CSharp 5.0As Novidades do CSharp 5.0
As Novidades do CSharp 5.0
Comunidade NetPonto
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
Norivan Oliveira
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
Mario Guedes
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
Laís Lima
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
Carlos Santos
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
Michel Alves
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
Relsi Maron
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Willian Magalhães
 

Mais procurados (20)

Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
As Novidades do CSharp 5.0
As Novidades do CSharp 5.0As Novidades do CSharp 5.0
As Novidades do CSharp 5.0
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 

Semelhante a Painel HHVM, Zephir, PHPNG

Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
Paulo Dayvson
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
George Mendonça
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016
Marcos Paulo
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
Lucas Augusto Carvalho
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
Fabio Moura Pereira
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
Felipe Vargas Rigo
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
GameFlixBR
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
João Machado
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
Felipe Ribeiro
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
Felipe Ribeiro
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
Edgar Silva
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
Agrupamento de Escolas da Batalha
 
Módulo de php
Módulo de phpMódulo de php
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
MrcioSantos806520
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
Elton Minetto
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
Marcus Vinicius Leandro
 
Modern PHP
Modern PHPModern PHP

Semelhante a Painel HHVM, Zephir, PHPNG (20)

Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Último

epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
LILIANPRESTESSCUDELE
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
KleginaldoPaz2
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
CarinaSantos916505
 

Último (20)

epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
 

Painel HHVM, Zephir, PHPNG

  • 1. Zephir Linguagem de Programação de alto nível para criar extensões para PHP @lgavinho
  • 2. http://zephir-lang.com/ 0.4.2 alpha Zend Engine / PHP / Intermediate @lgavinho
  • 3. Zephir = Phalcon 2 • Reduzir o tempo de desenvolvimento • Fazer código menos propenso a erros de codificação • PermiEr que mais membros da comunidade possam se envolver • PermiEr que mais usuários do Phalcon possam ler e entender como uma funcionalidade é implementada • PermiEr aos desenvolvedores Erar mais proveito da estrutura e uma total compreensão de como ele funciona • Apresentar potencial de refatoração e oEmizações sem afetar a estabilidade • Adaptar facilmente o código para novas versões do PHP • PermiEr contribuidores para implementar componentes adicionais @lgavinho
  • 4. Começando... Instalar dependências $ sudo apt-­‐get update $ sudo apt-­‐get install git gcc make re2c php5 php5-­‐json php5-­‐ dev libpcre3-­‐dev Instalar Json-­‐ C (compilar) $ git clone hYps://github.com/json-­‐c/json-­‐c.git $ cd json-­‐c $ sh autogen.sh $ ./configure $ make && sudo make install Instalar Zephir (compilar) $ git clone hYps://github.com/ phalcon/zephir $ cd zephir $ ./install -­‐c hYp://blog.zephir-­‐lang.com/post/73772370742/installing-­‐tesEng-­‐zephir-­‐on-­‐vagrant @lgavinho
  • 5. Zephir namespace Test; /** * MyTest (test/mytest.zep) */ class MyTest { public funcEon someMethod() { /* Variables must be declared */ var myArray; int i = 0, length; /* Create an array */ let myArray = ["hello", 0, 100.25, false, null]; /* Count the array into a 'int' variable */ let length = count(myArray); /* Print value types */ while i < length { echo typeof myArray[i], "n"; let i++; } return myArray; } } • Proteção de código-­‐ fonte • Compilação possibilita idenEficar erros mais cedo • Baixa curva de aprendizado. Muito parecida com PHP. @lgavinho Exemplo de código em Zephir
  • 6. Algumas caracterísEcas com foco no Programador • Orientada a objetos • Tipos estáEcos e dinâmicos • Análise estáEca de código • Organização em namespace • Parametros Read-­‐Only (const) • Type hints • Operador Fetch • Atalhos para geYer/seYer • Return Type hints @lgavinho
  • 7. Type hints Type hint informa ao compilador qual classe está relacionado a uma variável dinâmica permiEndo que o compilador possarealizar mais verificações de compilação. // Tell the compiler that "o" // is an instance of class MyClass let o = <MyClass> this-­‐>_myObject; o-­‐>myMethod(); @lgavinho
  • 8. Operador Fetch <?php if (isset($myArray[$key])) { $value = $myArray[$key]; echo $value; } if fetch value, myArray[key] { echo value; } zephir @lgavinho
  • 9. Atalhos para geYer/seYer namespace App; class MyClass { protected myProperty { set, get, toString }; protected someProperty = 10 { set, get }; } @lgavinho
  • 10. Return type hints Definir Epos dos retornos dos métodos. Tipos escalares, classes e namespace App; class MyClass { public funcEon getSomeData(a) -­‐> string|bool { if a == false { return false; } return "error"; } } void (sem retorno). @lgavinho
  • 11. Algumas comparações com PHP ZEPHIR -­‐ 3 X MAIS RÁPIDO @lgavinho
  • 12. Geração de código naEvo @lgavinho
  • 13. Branch predicEon hints PermiEr oEmizar o processamento informando que uma condição raramente irá acontecer. let allPaths = []; for path in this-­‐>_paths { if unlikely path-­‐>isAllowed() == false { throw new AppExcepEon("error!!"); } else { let allPaths[] = path; } } @lgavinho
  • 14. Outras caracterísEcas • Wrapper para funções customizadas oEmizadas em C • Arquivo de configuração: – 6 parametros de oEmizações – saída no phpinfo() @lgavinho
  • 15. Zephir não vai ser • Próxima linguagem de programação revolucionária. • SubsEtuição de PHP ou C (ou qualquer outra linguagem) • Ser a linguagem mais elegante e coerente disponível • Cobrir todos os recursos possíveis (atual ou futura) fornecido pelo PHP ou C • Implementar todos os recursos exatamente como no PHP ou C • Apoiar cada possível paradigma de programação • Fazer todos felizes @lgavinho
  • 16. Pontos fracos • Tempo de compilação pode baixar produEvidade de desenvolvimento – Solução Zephir RunEme • Debug • Menos agilidade na atualização em produção (live). Requer restart do webserver. • Muito novo. @lgavinho
  • 17. Então… • É muito rápido. É simples. • OEmizar algoritmos de alta demanda na aplicação. • Ganhar dinheiro desenvolvendo extensões permiEndo proteger seu código-­‐fonte. • Usar componentes em C facilmente no PHP. • E é muito rápido. @lgavinho