SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Jacksonfdam 
http://about.me/jacksonfdam 
https://bitbucket.org/jacksonfdam 
https://github.com/jacksonfdam 
http://linkedin.com/in/jacksonfdam 
@jacksonfdam
A 
thanks 
to 
Encourage 
and 
believe 
in 
the 
passage 
of 
knowledge. 
(And 
to 
release 
me 
from 
work 
to 
be 
here.) 
”
Why? 
• 
Use 
of 
frameworks 
has 
become 
mandatory 
in 
professional 
development 
with 
PHP 
• 
They 
offer 
a 
philosophy 
and 
organized 
structures 
to 
easily 
maintain 
projects 
writing 
less 
code 
and 
making 
work 
more 
fun
How 
PHP 
works? 
1. 
PHP 
have 
dynamic 
and 
weak 
typing 
discipline 
2. 
PHP 
is 
interpreted 
(not 
compiled) 
3. 
Every 
time 
a 
script 
is 
loaded, 
should 
be 
interpreted 
by 
PHP 
4. 
If 
a 
bytecode 
cache 
(like 
APC) 
isn’t 
used, 
syntax 
checking 
is 
performed 
every 
time
How 
traditional 
php 
frameworks 
works? 
1. 
Many 
files 
with 
classes 
and 
functions 
are 
read 
at 
every 
request 
made. 
Disk 
reading 
is 
expensive 
in 
terms 
of 
performance 
2. 
Modern 
frameworks 
use 
lazy 
loading 
technique 
(autoload) 
for 
load 
and 
execute 
only 
code 
needed 
3. 
Continuous 
loading/interpreting 
could 
be 
expensive 
and 
impact 
your 
application 
performance 
4. 
When 
you 
use 
a 
framework 
most 
of 
the 
code 
remain 
the 
same 
across 
development. 
Why 
load 
and 
interpret 
it 
every 
time?
How 
PHP 
works?
How 
traditional 
php 
frameworks 
works?
How 
a 
PHP 
C 
extension 
works? 
1. 
C 
extensions 
are 
loaded 
together 
with 
PHP 
one 
time, 
on 
the 
web 
server 
dispatch 
process 
2. 
Classes 
and 
functions 
provided 
by 
the 
extension 
are 
ready 
to 
use 
for 
any 
application 
3. 
The 
code 
isn’t 
interpreted 
because 
it 
is 
compiled 
to 
a 
specific 
platform 
and 
processor
How 
a 
PHP 
C 
extension 
works?
What 
is 
Phalcon? 
Phalcon 
is 
an 
open 
source, 
full 
stack 
framework 
for 
PHP 
5 
written 
as 
a 
C-­‐extension, 
optimized 
for 
high 
performance. 
You 
don’t 
need 
to 
learn 
or 
use 
the 
C 
language, 
since 
the 
functionality 
is 
exposed 
as 
PHP 
classes 
ready 
for 
you 
to 
use. 
Phalcon 
also 
is 
loosely 
coupled, 
allowing 
you 
to 
use 
its 
objects 
as 
glue 
components 
based 
on 
the 
needs 
of 
your 
application.
How 
Phalcon 
works? 
1. 
Components 
are 
loosely 
coupled. 
You 
may 
use 
the 
components 
you 
want 
without 
depending 
on 
a 
full 
stack 
2. 
Low-­‐level 
optimizations 
provide 
the 
lowest 
overhead 
for 
MVC-­‐based 
applications 
3. 
Interact 
with 
databases 
with 
maximum 
performance 
by 
using 
a 
C-­‐language 
ORM 
for 
PHP 
4. 
Phalcon 
is 
directly 
engaged 
with 
PHP, 
so 
it 
can 
directly 
access 
internal 
structures 
optimizing 
execution 
as 
well
What 
is 
Phalcon?
Compare 
how 
Phalcon 
is 
faster 
than 
other 
frameworks 
Traditional 
Frameworks 
Phalcon 
Interpretation 
of 
hundreds 
or 
thousands 
of 
PHP 
lines 
on 
each 
request 
YES 
NO 
Load 
dozens 
of 
files 
in 
each 
request 
YES 
NO 
Checking 
the 
existence 
of 
functions, 
methods, 
classes, 
constants 
at 
each 
request 
YES 
NO 
Low-­‐level 
optimizations 
gaining 
microseconds 
for 
each 
request 
NO 
YES
HipHop/HHVM 
While 
HipHop/HHVM 
(if 
you 
never 
heard, 
do 
a 
google 
research 
now) 
is 
a 
real 
virtual 
machine 
inside 
your 
server 
that 
pre-­‐compiles 
and 
serves 
your 
PHP, 
Phalcon 
is 
a 
“c-­‐ 
extension” 
that 
will 
be 
installed 
into 
your 
operating 
system 
(can 
be 
installed 
in 
Linux, 
Mac, 
Windows), 
not 
downloaded 
via 
Git 
like 
usually.
HipHop/HHVM 
With 
native 
PHP, 
the 
requested 
.php 
file 
is 
compiled 
at 
every 
request 
(which 
means, 
PHP, 
which 
is 
itself 
written 
in 
C, 
will 
do 
a 
syntax 
check, 
then 
the 
contents 
will 
be 
translated 
into 
C, 
then 
compiled 
and 
then 
executed).
HipHop/HHVM 
It 
does 
mainly 
the 
same 
thing 
HHVM 
does, 
but 
without 
HHVM. 
Phalcon 
is 
the 
only 
framework 
that 
does 
not 
come 
as 
pure 
.php 
files, 
it’s 
delivered 
as 
compiled 
C(++) 
binaries.It 
also 
comes 
with 
a 
rich 
set 
of 
excellent 
professional 
features, 
so 
it’s 
definitly 
not 
stripped 
down!
HipHop/HHVM 
The 
code 
you 
add 
will 
not 
be 
precompiled 
to 
C 
bins, 
so 
it’s 
a 
extra 
point 
for 
HHVM. 
To 
be 
honest, 
there 
was 
a 
lot 
of 
movement 
in 
the 
HHVM 
world 
in 
the 
last 
3 
months, 
and 
with 
the 
upcoming 
success 
(I 
really 
think 
so!) 
and 
easy 
implementation 
of 
HHVM 
basically 
every 
framework 
can 
gain 
extremely 
in 
compiling 
speed, 
therefore 
Phalcon 
loses 
it 
main 
killer 
feature 
a 
little 
bit, 
that’s 
true…
HipHop/HHVM 
From 
my 
understanding 
Phalcon 
does 
the 
syntax-­‐check 
and 
the 
compiling 
to 
C 
only 
once 
until 
the 
php 
file 
changes, 
so 
basically 
a 
request 
hits 
compiled 
C 
code, 
not 
to-­‐be-­‐ 
compiled 
PHP 
code.
Framework 
Benchmark
Framework 
Benchmark
Framework 
Benchmark 
<h1>Hello!</h1>
Test 
Environment 
Operative 
System: 
Mac 
OS 
X 
Snow 
Leopard 
10.6.8 
• 
Web 
Server: 
Apache 
httpd 
2.2.21 
• 
PHP: 
5.3.8 
+ 
APC 
3.1.9 
(Without 
Xdebug) 
• 
CPU: 
3.06 
Ghz 
Intel 
Core 
2 
Duo 
• 
Main 
Memory: 
4GB 
1067 
MHz 
DDR3 
• 
Hard 
Disk: 
500GB 
SCSI/SAS 
HDD
Framework 
Benchmark 
ab 
-­‐n 
1000 
-­‐c 
5 
http://localhost/bench/phalcon
Framework/Requests 
per 
Second
Framework 
Total 
Requests/Average 
Time
Number 
of 
Interpreted 
Files 
per 
Request
Allocated 
Memory 
per 
Request
Installation
Installation 
To 
use 
phalcon 
on 
Windows 
you 
can 
download 
a 
DLL 
library. 
Edit 
your 
php.ini 
file 
and 
then 
append 
at 
the 
end: 
extension=php_phalcon.dll 
Restart 
your 
webserver.
Requirements 
Prerequisite 
packages 
are: 
PHP 
>= 
5.3 
development 
resources 
GCC 
compiler 
(Linux/Solaris) 
Git 
(if 
not 
already 
installed 
in 
your 
system 
-­‐ 
unless 
you 
download 
the 
package 
from 
GitHub 
and 
upload 
it 
on 
your 
server 
via 
FTP/SFTP)
Configure 
Phalcon 
automatically 
detects 
your 
architecture, 
however, 
you 
can 
force 
the 
compilation 
for 
a 
specific 
architecture: 
cd 
cphalon/build 
sudo 
./install 
32bits 
sudo 
./install 
64bits 
sudo 
./install 
safe
Installation 
on 
XAMPP 
XAMPP 
is 
an 
easy 
to 
install 
Apache 
distribution 
containing 
MySQL, 
PHP 
and 
Perl. 
Once 
you 
download 
XAMPP, 
all 
you 
have 
to 
do 
is 
extract 
it 
and 
start 
using 
it. 
Below 
are 
detailed 
instructions 
on 
how 
to 
install 
Phalcon 
on 
XAMPP 
for 
Windows. 
Using 
the 
latest 
XAMPP 
version 
is 
highly 
recommended.
Creating 
a 
project 
File 
structure 
Phalcon 
does 
not 
impose 
a 
particular 
file 
structure 
for 
application 
development. 
Due 
to 
the 
fact 
that 
it 
is 
loosely 
coupled, 
you 
can 
implement 
Phalcon 
powered 
applications 
with 
a 
file 
structure 
you 
are 
most 
comfortable 
using.
Creating 
a 
project 
For 
the 
purposes 
of 
this 
tutorial 
and 
as 
a 
starting 
point, 
we 
suggest 
the 
following 
structure: 
lab01/ 
app/ 
controllers/ 
models/ 
views/ 
public/ 
css/ 
img/ 
js/
Beautiful 
URLs 
#/tutorial/.htaccess 
<IfModule 
mod_rewrite.c> 
RewriteEngine 
on 
RewriteRule 
^$ 
public/ 
[L] 
RewriteRule 
(.*) 
public/$1 
[L] 
</IfModule> 
#/tutorial/.htaccess 
<IfModule 
mod_rewrite.c> 
RewriteEngine 
on 
RewriteRule 
^$ 
public/ 
[L] 
RewriteRule 
(.*) 
public/$1 
[L] 
</IfModule>
Bootstrap 
<?php 
try 
{ 
//Register 
an 
autoloader 
$loader 
= 
new 
PhalconLoader(); 
$loader-­‐>registerDirs(array( 
'../app/controllers/', 
'../app/models/' 
))-­‐>register(); 
//Create 
a 
DI 
$di 
= 
new 
PhalconDIFactoryDefault(); 
//Setup 
the 
view 
component 
$di-­‐>set('view', 
function(){ 
$view 
= 
new 
PhalconMvcView(); 
$view-­‐>setViewsDir('../app/views/'); 
return 
$view; 
}); 
//Setup 
a 
base 
URI 
so 
that 
all 
generated 
URIs 
include 
the 
"tutorial" 
folder 
$di-­‐>set('url', 
function(){ 
$url 
= 
new 
PhalconMvcUrl(); 
$url-­‐>setBaseUri('/lab01//'); 
return 
$url; 
}); 
//Handle 
the 
request 
$application 
= 
new 
PhalconMvcApplication($di); 
echo 
$application-­‐>handle()-­‐>getContent(); 
} 
catch(PhalconException 
$e) 
{ 
echo 
"PhalconException: 
", 
$e-­‐>getMessage(); 
}
Creating 
a 
Controller 
By 
default 
Phalcon 
will 
look 
for 
a 
controller 
named 
“Index”. 
It 
is 
the 
starting 
point 
when 
no 
controller 
or 
action 
has 
been 
passed 
in 
the 
request. 
The 
index 
controller 
(app/controllers/IndexController.php) 
looks 
like: 
<?php 
class 
IndexController 
extends 
PhalconMvcController 
{ 
public 
function 
indexAction() 
{ 
echo 
"<h1>Hello!</h1>"; 
} 
}
Creating 
a 
Controller 
Sending 
output 
to 
a 
view 
Sending 
output 
to 
the 
screen 
from 
the 
controller 
is 
at 
times 
necessary 
but 
not 
desirable 
as 
most 
purists 
in 
the 
MVC 
community 
will 
attest. 
Everything 
must 
be 
passed 
to 
the 
view 
that 
is 
responsible 
for 
outputting 
data 
on 
screen. 
Phalcon 
will 
look 
for 
a 
view 
with 
the 
same 
name 
as 
the 
last 
executed 
action 
inside 
a 
directory 
named 
as 
the 
last 
executed 
controller
Creating 
a 
Controller 
In 
our 
case 
(app/views/index/index.phtml): 
<?php 
echo 
"<h1>Hello!</h1>"; 
Our 
controller 
(app/controllers/IndexController.php) 
now 
has 
an 
empty 
action 
definition: 
<?php 
class 
IndexController 
extends 
PhalconMvcController 
{ 
public 
function 
indexAction() 
{ 
} 
}
Creating 
a 
Model 
Phalcon 
brings 
the 
first 
ORM 
for 
PHP 
entirely 
written 
in 
C-­‐language. 
Instead 
of 
increasing 
the 
complexity 
of 
development, 
it 
simplifies 
it. 
Before 
creating 
our 
first 
model, 
we 
need 
to 
create 
a 
database 
table 
outside 
of 
Phalcon 
to 
map 
it 
to. 
A 
simple 
table 
to 
store 
registered 
users 
can 
be 
defined 
like 
this: 
CREATE 
TABLE 
`users` 
( 
`id` 
int(10) 
unsigned 
NOT 
NULL 
AUTO_INCREMENT, 
`name` 
varchar(70) 
NOT 
NULL, 
`email` 
varchar(70) 
NOT 
NULL, 
PRIMARY 
KEY 
(`id`) 
);
Creating 
a 
Model 
A 
model 
should 
be 
located 
in 
the 
app/models 
directory 
(app/models/Users.php). 
The 
model 
maps 
to 
the 
“users” 
table: 
<?php 
class 
Users 
extends 
PhalconMvcModel 
{ 
}
Setting 
a 
Database 
Connection 
In 
order 
to 
be 
able 
to 
use 
a 
database 
connection 
and 
subsequently 
access 
data 
through 
our 
models, 
we 
need 
to 
specify 
it 
in 
our 
bootstrap 
process. 
A 
database 
connection 
is 
just 
another 
service 
that 
our 
application 
has 
that 
can 
be 
used 
for 
several 
components:
Setting 
a 
Database 
Connection 
<?php 
try 
{ 
//Register 
an 
autoloader 
$loader 
= 
new 
PhalconLoader(); 
$loader-­‐>registerDirs(array( 
'../app/controllers/', 
'../app/models/' 
))-­‐>register(); 
//Create 
a 
DI 
$di 
= 
new 
PhalconDIFactoryDefault(); 
/ 
/Setup 
the 
database 
service 
$di-­‐>set('db', 
function(){ 
return 
new 
PhalconDbAdapterPdo 
Mysql(array( 
"host" 
=> 
"localhost", 
"username" 
=> 
"root", 
"password" 
=> 
"secret", 
"dbname" 
=> 
"test_db" 
)); 
}); 
//Setup 
the 
view 
component 
$di-­‐>set('view', 
function(){ 
$view 
= 
new 
PhalconMvcView(); 
$view-­‐>setViewsDir('../app/views/'); 
return 
$view; 
}); 
//Setup 
a 
base 
URI 
so 
that 
all 
generated 
URIs 
include 
the 
"tutorial" 
folder 
$di-­‐>set('url', 
function(){ 
$url 
= 
new 
PhalconMvcUrl(); 
$url-­‐>setBaseUri('/tutorial/'); 
return 
$url; 
}); 
//Handle 
the 
request 
$application 
= 
new 
PhalconMvcApplication($di); 
echo 
$application-­‐>handle()-­‐>getContent(); 
} 
catch(Exception 
$e) 
{ 
echo 
"PhalconException: 
", 
$e-­‐>getMessage(); 
}
Volt: 
Template 
Engine 
Volt 
is 
an 
ultra-­‐fast 
and 
designer 
friendly 
templating 
language 
written 
in 
C 
for 
PHP. 
It 
provides 
you 
a 
set 
of 
helpers 
to 
write 
views 
in 
an 
easy 
way. 
Volt 
is 
highly 
integrated 
with 
other 
components 
of 
Phalcon, 
just 
as 
you 
can 
use 
it 
as 
a 
stand-­‐alone 
component 
in 
your 
applications.
Volt: 
Template 
Engine
Volt: 
Template 
Engine 
Volt 
views 
are 
compiled 
to 
pure 
PHP 
code, 
so 
basically 
they 
save 
the 
effort 
of 
writing 
PHP 
code 
manually: 
{# 
app/views/products/show.volt 
#}{% 
block 
last_products 
%}{% 
for 
product 
in 
products 
%} 
* 
Name: 
{{ 
product.name|e 
}} 
{% 
if 
product.status 
== 
"Active" 
%} 
Price: 
{{ 
product.price 
+ 
product.taxes/100 
}} 
{% 
endif 
%}{% 
endfor 
%}{% 
endblock 
%}
Phalcon 
Query 
Language 
(PHQL) 
Phalcon 
Query 
Language, 
PhalconQL 
or 
simply 
PHQL 
is 
a 
high-­‐level, 
object-­‐oriented 
SQL 
dialect 
that 
allows 
to 
write 
queries 
using 
a 
standardized 
SQL-­‐like 
language. 
PHQL 
is 
implemented 
as 
a 
parser 
(written 
in 
C) 
that 
translates 
syntax 
in 
that 
of 
the 
target 
RDBMS.
Phalcon 
Query 
Language 
(PHQL) 
In 
PHQL, 
we’ve 
implemented 
a 
set 
of 
features 
to 
make 
your 
access 
to 
databases 
more 
secure: 
• 
Bound 
parameters 
are 
part 
of 
the 
PHQL 
language 
helping 
you 
to 
secure 
your 
code 
• 
PHQL 
only 
allows 
one 
SQL 
statement 
to 
be 
executed 
per 
call 
preventing 
injections 
• 
PHQL 
ignores 
all 
SQL 
comments 
which 
are 
often 
used 
in 
SQL 
injections 
• 
PHQL 
only 
allows 
data 
manipulation 
statements, 
avoiding 
altering 
or 
dropping 
tables/databases 
by 
mistake 
or 
externally 
without 
authorization 
• 
PHQL 
implements 
a 
high-­‐level 
abstraction 
allowing 
you 
to 
handle 
tables 
as 
models 
and 
fields 
as 
class 
attributes
Phalcon 
Query 
Language 
(PHQL) 
Creating 
queries 
using 
the 
Query 
Builder 
//Getting 
the 
first 
row 
$robots 
= 
$this-­‐>modelsManager-­‐>createBuilder() 
-­‐>from(’Robots’) 
-­‐>join(’RobotsParts’) 
-­‐>orderBy(’Robots.name’) 
-­‐>getQuery() 
-­‐>getSingleResult();
Phalcon 
Query 
Language 
(PHQL) 
Creating 
queries 
using 
the 
Query 
Builder 
// 
’SELECT 
Robots.* 
FROM 
Robots’; 
$builder-­‐>from(’Robots’);
Phalcon 
Query 
Language 
(PHQL) 
PHQL 
Lifecycle 
Being 
a 
high-­‐level 
language, 
PHQL 
gives 
developers 
the 
ability 
to 
personalize 
and 
customize 
different 
aspects 
in 
order 
to 
suit 
their 
needs. 
The 
following 
is 
the 
life 
cycle 
of 
each 
PHQL 
statement 
executed: 
• The 
PHQL 
is 
parsed 
and 
converted 
into 
an 
Intermediate 
Representation 
(IR) 
which 
is 
independent 
of 
the 
SQL 
implemented 
by 
database 
system 
• The 
IR 
is 
converted 
to 
valid 
SQL 
according 
to 
the 
database 
system 
associated 
to 
the 
model 
• PHQL 
statements 
are 
parsed 
once 
and 
cached 
in 
memory. 
Further 
executions 
of 
the 
same 
statement 
result 
in 
a 
slightly 
faster 
execution
Phalcon 
Developer 
Tools
Phalcon 
Developer 
Tools 
What 
are 
Devtools? 
This 
tools 
provide 
you 
useful 
scripts 
to 
generate 
code 
helping 
to 
develop 
faster 
and 
easy 
applications 
that 
use 
with 
Phalcon 
framework. 
Requirements 
PHP 
>= 
5.3.9 
Phalcon 
>= 
0.7.0
Phalcon 
Developer 
Tools 
• Installing 
via 
Composer 
• Installation 
via 
PEAR 
• Installing 
via 
GIT
Phalcon 
Developer 
Tools 
phalcon 
commands 
• commands 
(alias 
of: 
list, 
enumerate) 
• 
controller 
(alias 
of: 
create-­‐controller) 
• 
model 
(alias 
of: 
create-­‐model) 
• 
all-­‐models 
(alias 
of: 
create-­‐all-­‐models) 
• 
project 
(alias 
of: 
create-­‐project) 
• 
migration 
• 
scaffold 
• 
webtools 
https://github.com/phalcon/phalcon-­‐devtools
Phalcon 
Incubator 
Extending 
Phalcon: 
https://github.com/phalcon/incubator
Thank you! 
Email Social media 
jacksonfdam@gmail.com 
t 
f 
in 
@jacksonfdam 
@jacksonfdam 
@jacksonfdam

Weitere ähnliche Inhalte

Was ist angesagt?

All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$Joe Ferguson
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Clark Everetts
 
[Part 1] automation of home appliances using raspberry pi – software installa...
[Part 1] automation of home appliances using raspberry pi – software installa...[Part 1] automation of home appliances using raspberry pi – software installa...
[Part 1] automation of home appliances using raspberry pi – software installa...Azilen Technologies Pvt. Ltd.
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloudphp[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the CloudJoe Ferguson
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPMax Romanovsky
 
Architecting the Future: Abstractions and Metadata - CodeStock
Architecting the Future: Abstractions and Metadata - CodeStockArchitecting the Future: Abstractions and Metadata - CodeStock
Architecting the Future: Abstractions and Metadata - CodeStockDaniel Barker
 
Php framework at BarCampPP
Php framework at BarCampPPPhp framework at BarCampPP
Php framework at BarCampPPpsophy
 
An Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP ProgrammersAn Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP Programmersjphl
 
Laravel 5 New Features
Laravel 5 New FeaturesLaravel 5 New Features
Laravel 5 New FeaturesJoe Ferguson
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCDaniel Barker
 
Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)Engineor
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should knowPovilas Korop
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:win Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:win Joe Ferguson
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software EngineerSean Coates
 
CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldGraham Weldon
 

Was ist angesagt? (20)

All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
 
Cakephp manual-11
Cakephp manual-11Cakephp manual-11
Cakephp manual-11
 
[Part 1] automation of home appliances using raspberry pi – software installa...
[Part 1] automation of home appliances using raspberry pi – software installa...[Part 1] automation of home appliances using raspberry pi – software installa...
[Part 1] automation of home appliances using raspberry pi – software installa...
 
Phalcon overview
Phalcon overviewPhalcon overview
Phalcon overview
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloudphp[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
 
Architecting the Future: Abstractions and Metadata - CodeStock
Architecting the Future: Abstractions and Metadata - CodeStockArchitecting the Future: Abstractions and Metadata - CodeStock
Architecting the Future: Abstractions and Metadata - CodeStock
 
Php framework at BarCampPP
Php framework at BarCampPPPhp framework at BarCampPP
Php framework at BarCampPP
 
An Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP ProgrammersAn Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP Programmers
 
Laravel 5 New Features
Laravel 5 New FeaturesLaravel 5 New Features
Laravel 5 New Features
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDC
 
Composer Helpdesk
Composer HelpdeskComposer Helpdesk
Composer Helpdesk
 
Cakephp
CakephpCakephp
Cakephp
 
Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should know
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:win Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your world
 

Ähnlich wie Php Conference Brazil - Phalcon Giant Killer

2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida realPHP Conference Argentina
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning TalkEric Johnson
 
APACHE
APACHEAPACHE
APACHEARJUN
 
25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboards25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboardsDenis Ristic
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with PythonBrian Lyttle
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsDECK36
 
Php tutorial
Php tutorialPhp tutorial
Php tutorialNiit
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!Muhammad Ghazali
 

Ähnlich wie Php Conference Brazil - Phalcon Giant Killer (20)

Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
 
Php ppt
Php pptPhp ppt
Php ppt
 
Flask
FlaskFlask
Flask
 
Php.ppt
Php.pptPhp.ppt
Php.ppt
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning Talk
 
Php
PhpPhp
Php
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
 
APACHE
APACHEAPACHE
APACHE
 
25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboards25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboards
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
 
cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!
 
Php
PhpPhp
Php
 

Mehr von Jackson F. de A. Mafra

PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...Jackson F. de A. Mafra
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
O que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsO que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsJackson F. de A. Mafra
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesJackson F. de A. Mafra
 
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...Jackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Jackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros PassosJackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Conexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsConexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsJackson F. de A. Mafra
 
TDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensTDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensJackson F. de A. Mafra
 

Mehr von Jackson F. de A. Mafra (20)

PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
 
PHP SSO no Zentyal
PHP SSO no ZentyalPHP SSO no Zentyal
PHP SSO no Zentyal
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
O que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsO que você precisa saber sobre chatbots
O que você precisa saber sobre chatbots
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativos
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativos
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicações
 
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
 
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Desmistificando o DialogFlow
Desmistificando o DialogFlowDesmistificando o DialogFlow
Desmistificando o DialogFlow
 
ChatOps (ChatBots + DevOps)
ChatOps (ChatBots + DevOps) ChatOps (ChatBots + DevOps)
ChatOps (ChatBots + DevOps)
 
Conexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsConexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibots
 
WoMakersCode 2016 - Shit Happens
WoMakersCode 2016 -  Shit HappensWoMakersCode 2016 -  Shit Happens
WoMakersCode 2016 - Shit Happens
 
Dev Heroes
Dev HeroesDev Heroes
Dev Heroes
 
Trilha Android - Android Evolved
Trilha Android - Android EvolvedTrilha Android - Android Evolved
Trilha Android - Android Evolved
 
TDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensTDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit Happens
 
Material design
Material designMaterial design
Material design
 

Kürzlich hochgeladen

Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Delhi Call girls
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 

Kürzlich hochgeladen (20)

Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 

Php Conference Brazil - Phalcon Giant Killer

  • 1. Jacksonfdam http://about.me/jacksonfdam https://bitbucket.org/jacksonfdam https://github.com/jacksonfdam http://linkedin.com/in/jacksonfdam @jacksonfdam
  • 2. A thanks to Encourage and believe in the passage of knowledge. (And to release me from work to be here.) ”
  • 3. Why? • Use of frameworks has become mandatory in professional development with PHP • They offer a philosophy and organized structures to easily maintain projects writing less code and making work more fun
  • 4. How PHP works? 1. PHP have dynamic and weak typing discipline 2. PHP is interpreted (not compiled) 3. Every time a script is loaded, should be interpreted by PHP 4. If a bytecode cache (like APC) isn’t used, syntax checking is performed every time
  • 5. How traditional php frameworks works? 1. Many files with classes and functions are read at every request made. Disk reading is expensive in terms of performance 2. Modern frameworks use lazy loading technique (autoload) for load and execute only code needed 3. Continuous loading/interpreting could be expensive and impact your application performance 4. When you use a framework most of the code remain the same across development. Why load and interpret it every time?
  • 7. How traditional php frameworks works?
  • 8. How a PHP C extension works? 1. C extensions are loaded together with PHP one time, on the web server dispatch process 2. Classes and functions provided by the extension are ready to use for any application 3. The code isn’t interpreted because it is compiled to a specific platform and processor
  • 9. How a PHP C extension works?
  • 10. What is Phalcon? Phalcon is an open source, full stack framework for PHP 5 written as a C-­‐extension, optimized for high performance. You don’t need to learn or use the C language, since the functionality is exposed as PHP classes ready for you to use. Phalcon also is loosely coupled, allowing you to use its objects as glue components based on the needs of your application.
  • 11. How Phalcon works? 1. Components are loosely coupled. You may use the components you want without depending on a full stack 2. Low-­‐level optimizations provide the lowest overhead for MVC-­‐based applications 3. Interact with databases with maximum performance by using a C-­‐language ORM for PHP 4. Phalcon is directly engaged with PHP, so it can directly access internal structures optimizing execution as well
  • 13. Compare how Phalcon is faster than other frameworks Traditional Frameworks Phalcon Interpretation of hundreds or thousands of PHP lines on each request YES NO Load dozens of files in each request YES NO Checking the existence of functions, methods, classes, constants at each request YES NO Low-­‐level optimizations gaining microseconds for each request NO YES
  • 14. HipHop/HHVM While HipHop/HHVM (if you never heard, do a google research now) is a real virtual machine inside your server that pre-­‐compiles and serves your PHP, Phalcon is a “c-­‐ extension” that will be installed into your operating system (can be installed in Linux, Mac, Windows), not downloaded via Git like usually.
  • 15. HipHop/HHVM With native PHP, the requested .php file is compiled at every request (which means, PHP, which is itself written in C, will do a syntax check, then the contents will be translated into C, then compiled and then executed).
  • 16. HipHop/HHVM It does mainly the same thing HHVM does, but without HHVM. Phalcon is the only framework that does not come as pure .php files, it’s delivered as compiled C(++) binaries.It also comes with a rich set of excellent professional features, so it’s definitly not stripped down!
  • 17. HipHop/HHVM The code you add will not be precompiled to C bins, so it’s a extra point for HHVM. To be honest, there was a lot of movement in the HHVM world in the last 3 months, and with the upcoming success (I really think so!) and easy implementation of HHVM basically every framework can gain extremely in compiling speed, therefore Phalcon loses it main killer feature a little bit, that’s true…
  • 18. HipHop/HHVM From my understanding Phalcon does the syntax-­‐check and the compiling to C only once until the php file changes, so basically a request hits compiled C code, not to-­‐be-­‐ compiled PHP code.
  • 22. Test Environment Operative System: Mac OS X Snow Leopard 10.6.8 • Web Server: Apache httpd 2.2.21 • PHP: 5.3.8 + APC 3.1.9 (Without Xdebug) • CPU: 3.06 Ghz Intel Core 2 Duo • Main Memory: 4GB 1067 MHz DDR3 • Hard Disk: 500GB SCSI/SAS HDD
  • 23. Framework Benchmark ab -­‐n 1000 -­‐c 5 http://localhost/bench/phalcon
  • 26. Number of Interpreted Files per Request
  • 29. Installation To use phalcon on Windows you can download a DLL library. Edit your php.ini file and then append at the end: extension=php_phalcon.dll Restart your webserver.
  • 30. Requirements Prerequisite packages are: PHP >= 5.3 development resources GCC compiler (Linux/Solaris) Git (if not already installed in your system -­‐ unless you download the package from GitHub and upload it on your server via FTP/SFTP)
  • 31. Configure Phalcon automatically detects your architecture, however, you can force the compilation for a specific architecture: cd cphalon/build sudo ./install 32bits sudo ./install 64bits sudo ./install safe
  • 32. Installation on XAMPP XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. Once you download XAMPP, all you have to do is extract it and start using it. Below are detailed instructions on how to install Phalcon on XAMPP for Windows. Using the latest XAMPP version is highly recommended.
  • 33. Creating a project File structure Phalcon does not impose a particular file structure for application development. Due to the fact that it is loosely coupled, you can implement Phalcon powered applications with a file structure you are most comfortable using.
  • 34. Creating a project For the purposes of this tutorial and as a starting point, we suggest the following structure: lab01/ app/ controllers/ models/ views/ public/ css/ img/ js/
  • 35. Beautiful URLs #/tutorial/.htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule> #/tutorial/.htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
  • 36. Bootstrap <?php try { //Register an autoloader $loader = new PhalconLoader(); $loader-­‐>registerDirs(array( '../app/controllers/', '../app/models/' ))-­‐>register(); //Create a DI $di = new PhalconDIFactoryDefault(); //Setup the view component $di-­‐>set('view', function(){ $view = new PhalconMvcView(); $view-­‐>setViewsDir('../app/views/'); return $view; }); //Setup a base URI so that all generated URIs include the "tutorial" folder $di-­‐>set('url', function(){ $url = new PhalconMvcUrl(); $url-­‐>setBaseUri('/lab01//'); return $url; }); //Handle the request $application = new PhalconMvcApplication($di); echo $application-­‐>handle()-­‐>getContent(); } catch(PhalconException $e) { echo "PhalconException: ", $e-­‐>getMessage(); }
  • 37. Creating a Controller By default Phalcon will look for a controller named “Index”. It is the starting point when no controller or action has been passed in the request. The index controller (app/controllers/IndexController.php) looks like: <?php class IndexController extends PhalconMvcController { public function indexAction() { echo "<h1>Hello!</h1>"; } }
  • 38. Creating a Controller Sending output to a view Sending output to the screen from the controller is at times necessary but not desirable as most purists in the MVC community will attest. Everything must be passed to the view that is responsible for outputting data on screen. Phalcon will look for a view with the same name as the last executed action inside a directory named as the last executed controller
  • 39. Creating a Controller In our case (app/views/index/index.phtml): <?php echo "<h1>Hello!</h1>"; Our controller (app/controllers/IndexController.php) now has an empty action definition: <?php class IndexController extends PhalconMvcController { public function indexAction() { } }
  • 40. Creating a Model Phalcon brings the first ORM for PHP entirely written in C-­‐language. Instead of increasing the complexity of development, it simplifies it. Before creating our first model, we need to create a database table outside of Phalcon to map it to. A simple table to store registered users can be defined like this: CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(70) NOT NULL, `email` varchar(70) NOT NULL, PRIMARY KEY (`id`) );
  • 41. Creating a Model A model should be located in the app/models directory (app/models/Users.php). The model maps to the “users” table: <?php class Users extends PhalconMvcModel { }
  • 42. Setting a Database Connection In order to be able to use a database connection and subsequently access data through our models, we need to specify it in our bootstrap process. A database connection is just another service that our application has that can be used for several components:
  • 43. Setting a Database Connection <?php try { //Register an autoloader $loader = new PhalconLoader(); $loader-­‐>registerDirs(array( '../app/controllers/', '../app/models/' ))-­‐>register(); //Create a DI $di = new PhalconDIFactoryDefault(); / /Setup the database service $di-­‐>set('db', function(){ return new PhalconDbAdapterPdo Mysql(array( "host" => "localhost", "username" => "root", "password" => "secret", "dbname" => "test_db" )); }); //Setup the view component $di-­‐>set('view', function(){ $view = new PhalconMvcView(); $view-­‐>setViewsDir('../app/views/'); return $view; }); //Setup a base URI so that all generated URIs include the "tutorial" folder $di-­‐>set('url', function(){ $url = new PhalconMvcUrl(); $url-­‐>setBaseUri('/tutorial/'); return $url; }); //Handle the request $application = new PhalconMvcApplication($di); echo $application-­‐>handle()-­‐>getContent(); } catch(Exception $e) { echo "PhalconException: ", $e-­‐>getMessage(); }
  • 44. Volt: Template Engine Volt is an ultra-­‐fast and designer friendly templating language written in C for PHP. It provides you a set of helpers to write views in an easy way. Volt is highly integrated with other components of Phalcon, just as you can use it as a stand-­‐alone component in your applications.
  • 46. Volt: Template Engine Volt views are compiled to pure PHP code, so basically they save the effort of writing PHP code manually: {# app/views/products/show.volt #}{% block last_products %}{% for product in products %} * Name: {{ product.name|e }} {% if product.status == "Active" %} Price: {{ product.price + product.taxes/100 }} {% endif %}{% endfor %}{% endblock %}
  • 47. Phalcon Query Language (PHQL) Phalcon Query Language, PhalconQL or simply PHQL is a high-­‐level, object-­‐oriented SQL dialect that allows to write queries using a standardized SQL-­‐like language. PHQL is implemented as a parser (written in C) that translates syntax in that of the target RDBMS.
  • 48. Phalcon Query Language (PHQL) In PHQL, we’ve implemented a set of features to make your access to databases more secure: • Bound parameters are part of the PHQL language helping you to secure your code • PHQL only allows one SQL statement to be executed per call preventing injections • PHQL ignores all SQL comments which are often used in SQL injections • PHQL only allows data manipulation statements, avoiding altering or dropping tables/databases by mistake or externally without authorization • PHQL implements a high-­‐level abstraction allowing you to handle tables as models and fields as class attributes
  • 49. Phalcon Query Language (PHQL) Creating queries using the Query Builder //Getting the first row $robots = $this-­‐>modelsManager-­‐>createBuilder() -­‐>from(’Robots’) -­‐>join(’RobotsParts’) -­‐>orderBy(’Robots.name’) -­‐>getQuery() -­‐>getSingleResult();
  • 50. Phalcon Query Language (PHQL) Creating queries using the Query Builder // ’SELECT Robots.* FROM Robots’; $builder-­‐>from(’Robots’);
  • 51. Phalcon Query Language (PHQL) PHQL Lifecycle Being a high-­‐level language, PHQL gives developers the ability to personalize and customize different aspects in order to suit their needs. The following is the life cycle of each PHQL statement executed: • The PHQL is parsed and converted into an Intermediate Representation (IR) which is independent of the SQL implemented by database system • The IR is converted to valid SQL according to the database system associated to the model • PHQL statements are parsed once and cached in memory. Further executions of the same statement result in a slightly faster execution
  • 53. Phalcon Developer Tools What are Devtools? This tools provide you useful scripts to generate code helping to develop faster and easy applications that use with Phalcon framework. Requirements PHP >= 5.3.9 Phalcon >= 0.7.0
  • 54. Phalcon Developer Tools • Installing via Composer • Installation via PEAR • Installing via GIT
  • 55. Phalcon Developer Tools phalcon commands • commands (alias of: list, enumerate) • controller (alias of: create-­‐controller) • model (alias of: create-­‐model) • all-­‐models (alias of: create-­‐all-­‐models) • project (alias of: create-­‐project) • migration • scaffold • webtools https://github.com/phalcon/phalcon-­‐devtools
  • 56. Phalcon Incubator Extending Phalcon: https://github.com/phalcon/incubator
  • 57. Thank you! Email Social media jacksonfdam@gmail.com t f in @jacksonfdam @jacksonfdam @jacksonfdam