What’s next?
Taking PHP to the next level




                @davidcoallier — PHP Benelux 2012
You! You!
Who are you? What do you do?




              @davidcoallier — PHP Benelux 2012
Landscape
An overview of the PHP world




               @davidcoallier — PHP Benelux 2012
From the museum
... up to here today




                 @davidcoallier — PHP Benelux 2012
Namespaces




       @davidcoallier — PHP Benelux 2012
Namespaces!!




       @davidcoallier — PHP Benelux 2012
Closures & λ's                      (lambdas)

Just like javascript...




                    @davidcoallier — PHP Benelux 2012
SPL
 LSB
__DIR__             Phar
                                                  GC
   Functors
                                     $Dynamic::$Statics
  Short Ternaries


              @davidcoallier — PHP Benelux 2012
DateTime

 LSB                                             SPL
        ext/intl           Phar
                                                 ICU
  __DIR__
                       FPM                             GC
Functors                      MySQLnd
    Short Ternaries
                                       $Dynamic::$Statics
NOWDOCS
                      sqlite3                Collator

             @davidcoallier — PHP Benelux 2012
Get it?	


@davidcoallier — PHP Benelux 2012
5.4


@davidcoallier — PHP Benelux 2012
array('foo' => 'bar')




          @davidcoallier — PHP Benelux 2012
['foo' => 'bar']
Short Syntax for arrays!




                 @davidcoallier — PHP Benelux 2012
$obj->method($var)[2];
Function Array Dereferencing




                @davidcoallier — PHP Benelux 2012
Traits
Effective code re-use




                @davidcoallier — PHP Benelux 2012
@davidcoallier — PHP Benelux 2012
SessionHandler
class VendorSession extends SessionHandler {}




               @davidcoallier — PHP Benelux 2012
A lot more.
PHP 5.4 isn’t only traits and arrays




                 @davidcoallier — PHP Benelux 2012
Indirect Method Calls
$func = array(‘Foo’, ‘bar’);
$func();




                  @davidcoallier — PHP Benelux 2012
Member Access
Upon Instantiation



         @davidcoallier — PHP Benelux 2012
$obj = (new Foo)->bar();



       @davidcoallier — PHP Benelux 2012
Support this!
Added $this closure support.




                @davidcoallier — PHP Benelux 2012
The future is bright
Not only features




                @davidcoallier — PHP Benelux 2012
Release Process
Making it easier to contribute




                 @davidcoallier — PHP Benelux 2012
GIT!!!
http://git.php.net/




                  @davidcoallier — PHP Benelux 2012
Built-in Webserver?




         @davidcoallier — PHP Benelux 2012
What does it all
mean?



         @davidcoallier — PHP Benelux 2012
Stronger Engineering
PHP isn’t only for hacking spider scripts




                 @davidcoallier — PHP Benelux 2012
Better Tools
PHP a mature language




              @davidcoallier — PHP Benelux 2012
PHPUnit
Advanced Unit-Testing




               @davidcoallier — PHP Benelux 2012
XDebug
Needs no sub-section.




               @davidcoallier — PHP Benelux 2012
CodeSniffer
Make your code comply!




              @davidcoallier — PHP Benelux 2012
Getting work done
Frameworks old and new




              @davidcoallier — PHP Benelux 2012
Symfony




          @davidcoallier — PHP Benelux 2012
A bunch of DICs
Don’t call me. I’ll call you.




                   @davidcoallier — PHP Benelux 2012
Zend Framework




        @davidcoallier — PHP Benelux 2012
Lithium
(li3)




          @davidcoallier — PHP Benelux 2012
Even Agavi...
Take a look seriously.




                 @davidcoallier — PHP Benelux 2012
One step ahead
Virtually Rappin’ with HipHop




                @davidcoallier — PHP Benelux 2012
External Projects
Really worth mentioning.




                @davidcoallier — PHP Benelux 2012
@davidcoallier — PHP Benelux 2012
@davidcoallier — PHP Benelux 2012
On the other hand.
What is changing?




               @davidcoallier — PHP Benelux 2012
LAMP?
Yesterday’s problems




               @davidcoallier — PHP Benelux 2012
LNNP?
Today’s and Tomorrow’s problems
learning from yesterday’s mistakes.




               @davidcoallier — PHP Benelux 2012
L: Linux
N: Nginx
N: (N) NoSQL Solutions
P: PHP-FPM

         @davidcoallier — PHP Benelux 2012
Where does
that leave us?



         @davidcoallier — PHP Benelux 2012
Evolution



            @davidcoallier — PHP Benelux 2012
Platforms



            @davidcoallier — PHP Benelux 2012
Cloud...



           @davidcoallier — PHP Benelux 2012
Deploying



        @davidcoallier — PHP Benelux 2012
Quality Control



         @davidcoallier — PHP Benelux 2012
@davidcoallier — PHP Benelux 2012
Focus



        @davidcoallier — PHP Benelux 2012
Adapted
to evolving needs.




                @davidcoallier — PHP Benelux 2012
Modern.



          @davidcoallier — PHP Benelux 2012
Share Nothing
Selfish systems




                 @davidcoallier — PHP Benelux 2012
A new concept
No more managing.




              @davidcoallier — PHP Benelux 2012
Shiny Objects
We all want some!




                @davidcoallier — PHP Benelux 2012
“Desire and hope will push us toward the future”
                                          - Michel De Montaigne




                           @davidcoallier — PHP Benelux 2012
The David Theory



        @davidcoallier — PHP Benelux 2012
“Anything that can be used,
     should be tried”




       @davidcoallier — PHP Benelux 2012
That’s PaaS
Make me succeed, but allow me to fail fast.




                @davidcoallier — PHP Benelux 2012
Redis


@davidcoallier — PHP Benelux 2012
MongoDB


 @davidcoallier — PHP Benelux 2012
CouchDB


 @davidcoallier — PHP Benelux 2012
Riak


@davidcoallier — PHP Benelux 2012
CloudFlare


  @davidcoallier — PHP Benelux 2012
Ruby? :-O


 @davidcoallier — PHP Benelux 2012
Python? :o


  @davidcoallier — PHP Benelux 2012
Let us reflect.
About Technology and Communities




               @davidcoallier — PHP Benelux 2012
God Complex	
David’s Stockholm Syndrome




               @davidcoallier — PHP Benelux 2012
Users are worth
more than technology


      @davidcoallier — PHP Benelux 2012
“All War is Deception”
                                           —Sun Tzu



       @davidcoallier — PHP Benelux 2012
Next time
Think before bitching.




                 @davidcoallier — PHP Benelux 2012
A tip
Please consider the following.




                @davidcoallier — PHP Benelux 2012
Other Techs
There is a world out there.




                 @davidcoallier — PHP Benelux 2012
Polyglotism
It is not an illness.




                   @davidcoallier — PHP Benelux 2012
Different Worlds
But so similar.




                  @davidcoallier — PHP Benelux 2012
Community
Contributing to something




                @davidcoallier — PHP Benelux 2012
Notes on the Party
Dress warm for #phpbnl12bbq




              @davidcoallier — PHP Benelux 2012
Free Beer and Stuff?
Tweet @orchestra_io



         @davidcoallier — PHP Benelux 2012

Taking PHP to the next level

Editor's Notes