Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Keynote, PHP World Kongress Munich

1,509 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>

×