Keynote, PHP World Kongress Munich

1,485 views

Published on

Slides for my keynote for the PHP World Kongress, Munich 2009

Published in: Technology
  • Be the first to comment

Keynote, PHP World Kongress Munich

  1. 1. PHP Straßenkreuzung<br />24./25. November 2009<br />München<br />
  2. 2. Stay in contact<br />pierre@php.net<br />http://twitter.com/pierrejoye<br />http://www.facebook.com/pierre.joye<br />http://www.linkedin.com/in/pierrejoye<br />http://www.xing.com/profile/Pierre_Joye<br />
  3. 3. ?<br />?<br />?<br />?<br />5.2<br />5.3<br />?<br />?<br />?<br />?<br />?<br />4 !?<br />6 ?!<br />?<br />?<br />
  4. 4. Die Geschichte von PHP<br />2001<br />2001<br />2002<br />2005<br />2006<br />2009<br />2005<br />2000<br />2004<br />2012<br />
  5. 5. SchlechteNachricht<br />Gute (alte) Nachricht<br />
  6. 6. intl<br />phar<br />ifsetor<br />windows<br />enchant<br />closure<br />namespace<br />
  7. 7. Ifsetor<br />$id = $_GET[&apos;id&apos;] ?: 0; <br />var_dump($id);<br />
  8. 8. Namespaceinclude<br />namespace FooBarsubnamespace; const FOO = &apos;Fooarubnamespace&apos;; function foo() {} <br />classfoo { <br />staticfunctionstaticmethod() {<br /> echo&quot;static method Fooarubnamespace&quot;;}<br />} <br />
  9. 9. Namespace<br />include &apos;namespace1_inc.php&apos;;<br />constFOO = &apos;Fooar&apos;;<br />functionfoo() {}<br />classfoo {<br />staticfunctionstaticmethod() {<br /> echo&quot;static method Fooar&quot;; <br />}<br />} <br />
  10. 10. Namespaceunqualified<br />/* Unqualified name */<br />foo::staticmethod();<br />echoFOO; <br />
  11. 11. Namespacequalified<br />subnamespacefoo::staticmethod();<br />echosubnamespaceFOO;<br />
  12. 12. Namespacefullyqualified<br />FooBarfoo(); <br />FooBarfoo::staticmethod();<br />echoFooBarFOO;<br />
  13. 13. Closures<br />$myarray= array(3, 9, 2);<br />$myarray= array_filter(<br />$myarray,<br />function ($elm){<br /> return $elm &gt; 5;<br />}<br />);<br />var_dump($myarray);<br />
  14. 14. static vs self w/ lsb<br />classBase { <br />publicstaticfunction m() { self::printName();<br /> static::printName();<br />}<br />staticfunctionprintName() {<br /> echo__CLASS__; echo &apos;&lt;br/&gt;&apos;;<br />}<br />}<br />Base::m();<br />
  15. 15. static vs self w/ lsb<br />classExtendedextends Base {<br />static functionprintName() {<br />echo__CLASS__;<br />echo&apos;&lt;br/&gt;&apos;;<br />}<br />}<br />
  16. 16. intl<br />$fmt2 = newMessageFormatter(&quot;de_DE&quot;, &quot;{0,number,integer} Affen auf {1,number,integer} Baumensind {2,number} Affen pro Baum&quot;); <br />echo$fmt2-&gt;format(array(4560, 123, 4560/123)); echo &quot;&lt;br/&gt;&quot;;<br />$fmt = newMessageFormatter(&quot;en_US&quot;, &quot;{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree&quot;); <br />echo$fmt-&gt;format(array(4560, 123, 4560/123)); <br />
  17. 17. phar<br />Jar for PHP<br />Easy way to distribute applications<br />Custom format or use tar/zip<br />Mapping requests to a file inside the phar<br />
  18. 18. enchant<br />UTF-8 support<br />MySpell/HunSpell (OpenOffice) support<br />Zemberek (Tuerkisch)<br />One API<br />AppleSpell on Mac OS X<br />Aspell/Pspell<br />
  19. 19.
  20. 20.
  21. 21.
  22. 22.
  23. 23. <ul><li>CouchDB
  24. 24. MongoDB
  25. 25. MemCache(d)
  26. 26. SimpleDB</li></li></ul><li><ul><li>Mashups
  27. 27. JS
  28. 28. Apps
  29. 29. Web 2.0 apps</li></li></ul><li>

×