Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Taking PHP to the Next Level

Taking PHP to the Next Level

The state of the PHP world has been most precarious over the past few years and many developers moved over to other languages and other technologies because PHP was lacking something that other emerging techs were providing.

With the rise of cloud computing, cutting edge frameworks and amazing platforms, PHP can be sexy again. This talk takes you on a tour of the history and future of PHP.

David Coallier

May 19, 2012
Tweet

More Decks by David Coallier

Other Decks in Technology

Transcript

  1. What’s next?
    Taking PHP to the next level
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  2. You! You!
    Who are you? What do you do?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  3. Landscape
    An overview of the PHP world
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  4. From the museum
    ... up to here today
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  5. ~83 000
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  6. ~700 000
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  7. ~73 799 102
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  8. Namespaces\\
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  9. Namespaces!!
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  10. Closures & λ's
    (lambdas)
    Just like javascript...
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  11. $lambda = function() { ... }
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  12. $foo = ‘bar’;
    $cls = function() use ($foo) {
    return $foo;
    };
    echo $cls();
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  13. $f = function() { ... }
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  14. LSB
    GC
    Functors
    Phar
    $Dynamic::$Statics
    SPL
    Short Ternaries (?:)
    __DIR__
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  15. LSB
    GC
    Functors
    Phar
    $Dynamic::$Statics
    SPL
    Short Ternaries (?:)
    __DIR__
    MySQLnd
    DateTime
    FPM
    NOWDOCS
    ICU
    Collator
    ext/intl
    sqlite3
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  16. Get it?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  17. 5.4
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  18. array('foo' => 'bar')
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  19. ['foo' => 'bar']
    Short Syntax for arrays!
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  20. $obj->method($var)[2];
    Function Array Dereferencing
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  21. Traits
    Effective code re-use
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  22. @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  23. SessionHandler
    class VendorSession extends SessionHandler {}
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  24. A lot more.
    PHP 5.4 isn’t only traits and arrays
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  25. Indirect Method Calls
    $func = array(‘Foo’, ‘bar’);
    $func();
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  26. Member Access
    Upon Instantiation
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  27. $obj = (new Foo)->bar();
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  28. Support this!
    Added $this closure support.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  29. The future is bright
    Not only features
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  30. Release Process
    Making it easier to contribute
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  31. GIT!!!
    http://git.php.net/
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  32. Built-in Webserver?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  33. What does it all
    mean?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  34. Stronger Engineering
    PHP isn’t only for hacking spider scripts
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  35. Better Tools
    PHP a mature language
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  36. PHPUnit
    Advanced Unit-Testing
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  37. XDebug
    10 years! Congrats!
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  38. Sunday 20 May 12

    View Slide

  39. CodeSniffer
    Make your code comply!
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  40. Getting work done
    Frameworks old and new
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  41. Symfony
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  42. Sunday 20 May 12

    View Slide

  43. A bunch of DICs
    Don’t call me. I’ll call you.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  44. Zend Framework
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  45. Sunday 20 May 12

    View Slide

  46. Lithium
    (li3)
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  47. Even Agavi...
    Take a look seriously.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  48. Silex
    The largest micro-framework.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  49. Composer
    A New Package Manager
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  50. External Projects
    Really worth mentioning.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  51. @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  52. @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  53. Node.js
    Don’t worry it doesn’t hurt.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  54. Nodephp.org
    Taking the JS out of Node.js
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  55. On the other hand.
    What is changing?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  56. LAMP?
    Yesterday’s problems
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  57. LNNP?
    Today’s and Tomorrow’s problems
    learning from yesterday’s mistakes.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  58. L: Linux
    N: Nginx
    N: (N) NoSQL Solutions
    P: PHP-FPM
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  59. Rasmus once said
    When the world becomes standard,
    I will start caring about standards.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  60. The FIG
    The PHP Framework Interoperability Group
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  61. Where does
    that leave us?
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  62. Evolution
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  63. Platforms
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  64. Cloud...
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  65. Deploying
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  66. Quality Control
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  67. @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  68. Focus
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  69. Adapted (ing)
    to evolving needs.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  70. Modern
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  71. Share Nothing
    Selfish systems
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  72. A new concept
    No more managing.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  73. Shiny Objects
    We all want some!
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  74. “Desire and hope will push us toward the future”
    - Michel De Montaigne
    Sunday 20 May 12

    View Slide

  75. The David Theory
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  76. “Anything that can be used,
    should be tried”
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  77. That’s PaaS
    Make me succeed, but allow me to fail fast.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  78. Redis
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  79. MongoDB
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  80. CouchDB
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  81. Riak
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  82. CloudFlare
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  83. Ruby? :-O
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  84. Python? :o
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  85. Let us reflect.
    About Technology and Communities
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  86. God Complex
    David’s Stockholm Syndrome
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  87. “All War is Deception”
    —Sun Tzu
    @davidcoallier — Italy — phpDay 2012
    Sunday 20 May 12

    View Slide

  88. Users are worth
    more than technology
    @davidcoallier — Italy — phpDay 2012
    Sunday 20 May 12

    View Slide

  89. Next time
    Think before bitching.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  90. A tip
    Please consider the following.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  91. Other Techs
    There is a world out there.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  92. Polyglotism
    It is not an illness.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  93. Different Worlds
    But so similar.
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  94. Community
    Contributing to something
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide

  95. Free Beer and Stuff?
    Tweet @engineyard
    @davidcoallier — Italy —phpDay 2012
    Sunday 20 May 12

    View Slide