Taking it to the next level

Taking it to the next level

A brief overview of the world of PHP 5.3, PHP 5.4, PHP 5.5 as well as what PHP did and is doing for the world. We then reflect on where we are going and what we can do, as a community to improve it.

C6ec08260e13aa2d5e9a7519546bed27?s=128

David Coallier

March 20, 2013
Tweet

Transcript

  1. What’s next? Taking PHP to the next level @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  2. Landscape An overview of the PHP world @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  3. From the museum ... up to here today @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  4. ~285,000 @davidcoallier — Berlin — SymfonyLive 2012 This is not

    a typo. Thursday 22 November 12
  5. ~700 000 @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  6. ~75 000 000 @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  7. ~130 000 @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  8. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12

  9. Yearly Salary for @davidcoallier — Berlin — SymfonyLive 2012 ~60

    000 Thursday 22 November 12
  10. Making People @davidcoallier — Berlin — SymfonyLive 2012 Happy Thursday

    22 November 12
  11. @davidcoallier — Berlin — SymfonyLive 2012 Der Neandertaler Extinction? Thursday

    22 November 12
  12. @davidcoallier — Berlin — SymfonyLive 2012 Teaching Billions Education Thursday

    22 November 12
  13. http://stats.wikimedia.org/ @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  14. Namespaces\\ @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  15. Namespaces!! @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  16. Closures & λ's (lambdas) Just like javascript... @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  17. $lambda = function() { ... } @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  18. $foo = ‘bar’; $cls = function() use ($foo) { return

    $foo; }; echo $cls(); @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  19. $f = function() { ... } @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  20. LSB GC Functors Phar $Dynamic::$Statics SPL Short Ternaries (?:) __DIR__

    @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  21. LSB GC Functors Phar $Dynamic::$Statics SPL Short Ternaries (?:) __DIR__

    MySQLnd DateTime FPM NOWDOCS ICU Collator ext/intl sqlite3 @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  22. Get it? @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  23. 5.4 @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  24. array('foo' => 'bar') @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  25. ['foo' => 'bar'] Short Syntax for arrays! @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  26. $obj->method($var)[2]; Function Array Dereferencing @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  27. Traits Effective code re-use @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  28. @davidcoallier — Berlin — SymfonyLive 2012 1 <?php 2 3

    trait conferenceTrait { 4 public $year { 5 get { return date('Y'); } 6 } 7 } 8 9 class SymfonyLive { 10 use conferenceTrait; 11 } 12 13 $sfLive = new SymfonyLive(); 14 echo $sfLive->year; Thursday 22 November 12
  29. SessionHandler class VendorSession extends SessionHandler {} @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  30. A lot more. PHP 5.4 isn’t only traits and arrays

    @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  31. Indirect Method Calls $func = array(‘Foo’, ‘bar’); $func(); @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  32. Member Access Upon Instantiation @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  33. $obj = (new Foo)->bar(); @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  34. Support this! Added $this closure support. @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  35. PHP 5.5 Wait what? @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  36. Password Hashing API Simplified Password API @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  37. Arbitrary Empty Args empty(func()) • !func() @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  38. Foreach list Support foreach ($vars as list($one, $two)) {...} @davidcoallier

    — Berlin — SymfonyLive 2012 Thursday 22 November 12
  39. Getters and Setters public $conf { get { return $this->conf;

    } set { $this->conf = ‘SymfonyLive2013’; } } @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  40. echo ‘This is: ‘ . $obj->conf; @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  41. Generators yield $explanation; @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  42. Finally... finally. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  43. @davidcoallier — Berlin — SymfonyLive 2012 1 <?php 2 3

    function foobar() 4 { 5 try { 6 throw new Exception('baz?'); 7 } catch (Exception $e) { 8 echo $e->getMessage(); 9 } finally { 10 echo 'Look at me doing stuff.'; 11 } 12 } Thursday 22 November 12
  44. Smaller things Not shiny but ... @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  45. PCRE-/e Hash Curl? MySQLi assert(...) ICU set_error_handler(null); boolval() @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  46. The future is bright Not only features @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  47. Release Process Making it easier to contribute @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  48. GIT!!! http://git.php.net/ @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  49. Built-in Webserver? @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  50. What does it all mean? @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  51. Stronger Engineering PHP isn’t only for hacking spider scripts @davidcoallier

    — Berlin — SymfonyLive 2012 Thursday 22 November 12
  52. Better Tools PHP a mature language @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  53. PHPUnit Advanced Unit-Testing @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  54. XDebug 10 years! Congrats! @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  55. Getting work done Frameworks old and new @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  56. Symfony @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  57. Thursday 22 November 12

  58. A bunch of DICs Don’t call me. I’ll call you.

    @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  59. Zend Framework @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  60. Thursday 22 November 12

  61. Lithium (li3) @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  62. Even Agavi... Take a look seriously. @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  63. Silex The largest micro-framework. @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  64. Thursday 22 November 12

  65. Composer A New Package Manager @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  66. Thursday 22 November 12

  67. External Projects Really worth mentioning. @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  68. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12

  69. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12

  70. Node.js Don’t worry it doesn’t hurt. @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  71. Nodephp.org Taking the JS out of Node.js @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  72. On the other hand. What is changing? @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  73. LAMP? Yesterday’s problems @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  74. Rasmus once said When the world becomes standard, I will

    start caring about standards. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  75. The FIG The PHP Framework Interoperability Group @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  76. Where does that leave us? @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  77. Evolution @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  78. Platforms @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  79. Cloud... @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  80. Deploying @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  81. Quality Control @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  82. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12

  83. Focus @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  84. Adapted (ing) to evolving needs. @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  85. Modern @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  86. Share Nothing Selfish systems @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  87. Shiny Objects We all want some! @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  88. “Desire and hope will push us toward the future” -

    Michel De Montaigne Thursday 22 November 12
  89. The David Theory @davidcoallier — Berlin — SymfonyLive 2012 Thursday

    22 November 12
  90. “Anything that can be used, should be tried” @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  91. That’s PaaS Make me succeed, but allow me to fail

    fast. @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November 12
  92. Redis @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  93. MongoDB @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  94. CouchDB @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  95. Riak @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  96. CloudFlare @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22 November

    12
  97. Ruby? :-O @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  98. Python? :o @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12
  99. Let us reflect. About Technology and Communities @davidcoallier — Berlin

    — SymfonyLive 2012 Thursday 22 November 12
  100. God Complex David’s Stockholm Syndrome @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  101. “All War is Deception” —Sun Tzu @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  102. Users are worth more than technology @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  103. Next time Think before bitching. @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  104. A tip Please consider the following. @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  105. Other Techs There is a world out there. @davidcoallier —

    Berlin — SymfonyLive 2012 Thursday 22 November 12
  106. Polyglotism It is not an illness. @davidcoallier — Berlin —

    SymfonyLive 2012 Thursday 22 November 12
  107. Different Worlds But so similar. @davidcoallier — Berlin — SymfonyLive

    2012 Thursday 22 November 12
  108. Community Contributing to something @davidcoallier — Berlin — SymfonyLive 2012

    Thursday 22 November 12
  109. Links http://bitly.com/bundles/davidcoallier/3 @davidcoallier — Berlin — SymfonyLive 2012 Thursday 22

    November 12