56
www.web-developer-conference.de Pierre Joye PHP / Microsoft OSTC PHP 5.4 and next What’s new in PHP

Webdevcon pierrejoye-php54-and-other

Embed Size (px)

DESCRIPTION

What's up in php.net, php 5.4 &co.

Citation preview

Page 1: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

Pierre Joye@pierrejoye

[email protected]

IRC Freenode, EFNet

@Pierre

Page 3: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Pierre JoyePHP (Core) developer

(almost) crazy guy behind PHP/Windows

Portability Fanatic

Page 4: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

php.net?(da passiert heh nichts, oder doch?)

Page 5: Webdevcon pierrejoye-php54-and-other

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

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

www.web-developer-conference.de

RFC

• Release cycle• BC policy• Security release policy

Page 8: Webdevcon pierrejoye-php54-and-other

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

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

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

www.web-developer-conference.de

php?(da passiert heh nichts, oder doch?)

Page 12: Webdevcon pierrejoye-php54-and-other

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

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

www.web-developer-conference.de5.4

Page 15: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Speed!

Page 16: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

+55%raw performance improvements

Page 17: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

23.759

Page 18: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

15.992

Page 19: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

Speed!(for the oldy)

Page 21: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

APC + IgBinary

Page 22: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 23: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Drupal 7

Page 24: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

Page 26: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 27: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Laziness!(or the short array syntax)

Page 28: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 29: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Arrrray-ify(array dereferencing, save me a line)

Page 30: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

(reminder: References are not pointers)

Page 31: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 32: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 33: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Indirect method call

Page 34: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 35: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

What we were all waiting for!(goto is already here btw)

Page 36: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Binary format

Page 37: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 38: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Traits

Page 39: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

Evolution(s)

Page 41: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Day 1

Page 42: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 43: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Day 2

Page 44: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 45: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Day 3

Page 46: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 47: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 48: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

(and correct implementation)Multiple traits

Page 49: Webdevcon pierrejoye-php54-and-other

www.web-developer-conference.de

Page 50: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

Use Traits!

Page 52: Webdevcon pierrejoye-php54-and-other

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

www.web-developer-conference.de

PHP needs you!

Page 54: Webdevcon pierrejoye-php54-and-other

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

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

www.web-developer-conference.de

Resources

• Other RFCs:– https://wiki.php.net/rfc

• Traits documentation– http://www.php.net/traits