webdevcon pierrejoye-php54-and-other
DESCRIPTION
What's up in php.net, php 5.4 &co.TRANSCRIPT
![Page 1: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/1.jpg)
www.web-developer-conference.de
Pierre JoyePHP / Microsoft OSTC
PHP 5.4 and nextWhat’s new in PHP?
![Page 2: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/2.jpg)
www.web-developer-conference.de
Pierre Joye@pierrejoye
IRC Freenode, EFNet
@Pierre
![Page 3: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/3.jpg)
www.web-developer-conference.de
Pierre JoyePHP (Core) developer
(almost) crazy guy behind PHP/Windows
Portability Fanatic
![Page 4: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/4.jpg)
www.web-developer-conference.de
php.net?(da passiert heh nichts, oder doch?)
![Page 5: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/5.jpg)
www.web-developer-conference.de
Voting process
• Project leaders can vote• Clear and open processes and votes• https://wiki.php.net/rfc/voting• End of the trolls (almost)
![Page 6: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/6.jpg)
www.web-developer-conference.de
RFC
“PHP releases have always been done spontaneously, in a somehow chaotic way. Individual(s) decided when a release will happen and what could or could fit in. Release managers role are unclear and the way to nominate them is not clearly defined either.
The goals of this RFC aim to solve these issues while giving to us, our users and 3rd parties (distributions, contributors, etc.) more visibility and the ability to actually have a roadmap, or plan developments.”
Felipe Pena, Etienne Kneuss, Stanislav Malyshev, Gustavo André dos Santos Lopes, David Soria Parra, Christian Stocker, Rob Richards, Pierre Joye, Zeev Suraski, Ilia Alshanetsky
https://wiki.php.net/rfc/releaseprocess
![Page 7: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/7.jpg)
www.web-developer-conference.de
RFC
• Release cycle• BC policy• Security release policy
![Page 8: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/8.jpg)
www.web-developer-conference.de
Release cycle
5.4 • 2011/11
5.5 • 2012/11
6.0 • 2013/11
![Page 9: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/9.jpg)
www.web-developer-conference.de
5.4
5.4.1 5.4.3 …5.4.2 5.4.5 5.4.14 EOL
Release cycle2011 2012 2013
5.5
5.5.1 5.5.35.5.2 …
2014
6.0
6.0.1 6.0.36.0.2 6.0.4 …
![Page 10: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/10.jpg)
www.web-developer-conference.de
Backward Compatibility
5.4
5.5
6.0
BC Break not allowed
BC Break allowed (if desired)
![Page 11: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/11.jpg)
www.web-developer-conference.de
php?(da passiert heh nichts, oder doch?)
![Page 12: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/12.jpg)
www.web-developer-conference.de
“All PHP users should note that the PHP 5.2 series is NOT supported anymore.”
www.php.net
![Page 13: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/13.jpg)
www.web-developer-conference.de
“If you aren’t running PHP 5.3 on Windows, you’re lucky…because you have a 40% performance boost coming.” Rasmus Lerdorf
Seattle PHP Meetup/October 2011
![Page 14: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/14.jpg)
www.web-developer-conference.de5.4
![Page 15: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/15.jpg)
www.web-developer-conference.de
Speed!
![Page 16: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/16.jpg)
www.web-developer-conference.de
+55%raw performance improvements
![Page 17: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/17.jpg)
www.web-developer-conference.de
23.759
![Page 18: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/18.jpg)
www.web-developer-conference.de
15.992
![Page 19: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/19.jpg)
www.web-developer-conference.de
Bench source
microbench.php
php’s src Zend/micro-bench.php
or via svn:
http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/Zend/micro_bench.php
![Page 20: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/20.jpg)
www.web-developer-conference.de
Speed!(for the oldy)
![Page 21: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/21.jpg)
www.web-developer-conference.de
APC + IgBinary
![Page 22: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/22.jpg)
www.web-developer-conference.de
![Page 23: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/23.jpg)
www.web-developer-conference.de
Drupal 7
![Page 24: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/24.jpg)
www.web-developer-conference.de
I don’t want no web server(or why in the world should I use Apache, IIS or nginx ;-)
![Page 25: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/25.jpg)
www.web-developer-conference.de
![Page 26: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/26.jpg)
www.web-developer-conference.de
![Page 27: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/27.jpg)
www.web-developer-conference.de
Laziness!(or the short array syntax)
![Page 28: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/28.jpg)
www.web-developer-conference.de
![Page 29: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/29.jpg)
www.web-developer-conference.de
Arrrray-ify(array dereferencing, save me a line)
![Page 30: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/30.jpg)
www.web-developer-conference.de
(reminder: References are not pointers)
![Page 31: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/31.jpg)
www.web-developer-conference.de
![Page 32: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/32.jpg)
www.web-developer-conference.de
![Page 33: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/33.jpg)
www.web-developer-conference.de
Indirect method call
![Page 34: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/34.jpg)
www.web-developer-conference.de
![Page 35: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/35.jpg)
www.web-developer-conference.de
What we were all waiting for!(goto is already here btw)
![Page 36: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/36.jpg)
www.web-developer-conference.de
Binary format
![Page 37: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/37.jpg)
www.web-developer-conference.de
![Page 38: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/38.jpg)
www.web-developer-conference.de
Traits
![Page 39: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/39.jpg)
www.web-developer-conference.de
Traits? ”it is just compiler assisted copy and paste”
Stefan Marr
http://marc.info/?l=php-internals&m=128993895520538&w=2
![Page 40: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/40.jpg)
www.web-developer-conference.de
Evolution(s)
![Page 41: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/41.jpg)
www.web-developer-conference.de
Day 1
![Page 42: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/42.jpg)
www.web-developer-conference.de
![Page 43: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/43.jpg)
www.web-developer-conference.de
Day 2
![Page 44: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/44.jpg)
www.web-developer-conference.de
![Page 45: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/45.jpg)
www.web-developer-conference.de
Day 3
![Page 46: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/46.jpg)
www.web-developer-conference.de
![Page 47: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/47.jpg)
www.web-developer-conference.de
![Page 48: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/48.jpg)
www.web-developer-conference.de
(and correct implementation)Multiple traits
![Page 49: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/49.jpg)
www.web-developer-conference.de
![Page 50: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/50.jpg)
www.web-developer-conference.de
Duplication Extends Traits65
70
75
80
85
90
Traits vs Extends vs Copy/Paste
![Page 51: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/51.jpg)
www.web-developer-conference.de
Use Traits!
![Page 52: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/52.jpg)
www.web-developer-conference.de
• MySQLnd– Plugins
• Session wrapper OO support– https://wiki.php.net/rfc/session-oo
• Upload progress for session data– https://wiki.php.net/rfc/session_upload_progress
• JsonSerializable interface• Dtrace support
![Page 53: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/53.jpg)
www.web-developer-conference.de
PHP needs you!
![Page 54: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/54.jpg)
www.web-developer-conference.de
• Test PHP 5.4 beta/RC releases–Using your apps–Run the tests suite
• Report bugs• Ask features
![Page 55: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/55.jpg)
www.web-developer-conference.de
resources
• Script used in this talk https://github.com/pierrejoye/webdevcon2011
• 5.4 https://wiki.php.net/todo/php54• 5.4 migration guide (work in progress)
http://de3.php.net/manual/en/migration54.php• Built-in webserver RFC&doc
• https://wiki.php.net/rfc/builtinwebserver• http://
php.net/manual/en/features.commandline.webserver.php
![Page 56: Webdevcon pierrejoye-php54-and-other](https://reader036.vdocument.in/reader036/viewer/2022070303/549077c6b47959a4028b495b/html5/thumbnails/56.jpg)
www.web-developer-conference.de
Resources
• Other RFCs:– https://wiki.php.net/rfc
• Traits documentation– http://www.php.net/traits