PHP 7, HHVM & CO
14 – 15 NOVEMBER, 2015
#WebConfRiga
@Webconfriga
Riga
Pierre Joye
Slide 2
Slide 2 text
PHP7, hhvm & co
Pierre Joye
@pierrejoye
[email protected]
http://www.slideshare.net/pierrej
PHP Core developer
Contributors to numerous OSS projects
Portability fan
Slide 3
Slide 3 text
PHP7, hhvm & co
Stats
Slide 4
Slide 4 text
PHP7, hhvm & co
Contribute.
Slide 5
Slide 5 text
PHP7, hhvm & co
What‘s going in the php world?
Slide 6
Slide 6 text
PHP7, hhvm & co
Awesome new extension installer
https://github.com/FriendsOfPHP/pickle
Slide 7
Slide 7 text
PHP7, hhvm & co
RFCs
http://wiki.php.net/rfc
Slide 8
Slide 8 text
PHP7, hhvm & co
Release Process
https://wiki.php.net/rfc/releaseprocess
Slide 9
Slide 9 text
PHP7, hhvm & co
Supported Releases
http://php.net/supported-versions.php
Slide 10
Slide 10 text
PHP7, hhvm & co
PHP 5.3
2009 - 2014
Slide 11
Slide 11 text
PHP7, hhvm & co
PHP 5.4
2012 - 2015
Slide 12
Slide 12 text
PHP7, hhvm & co
PHP 5.5
Security fixes only
Slide 13
Slide 13 text
PHP7, hhvm & co
PHP 5.5
2013 - 2016
Slide 14
Slide 14 text
PHP7, hhvm & co
PHP 5.6.15 is out!
Slide 15
Slide 15 text
PHP7, hhvm & co
5 + 1 = 7
Slide 16
Slide 16 text
PHP7, hhvm & co
6.6.6
Slide 17
Slide 17 text
PHP7, hhvm & co
Slide 18
Slide 18 text
PHP7, hhvm & co
PHP 7.0.0RC3 last week!
Slide 19
Slide 19 text
PHP7, hhvm & co
PHP 7.0 – Future is now
Slide 20
Slide 20 text
PHP7, hhvm & co
PHP 7.0 – speed++
Slide 21
Slide 21 text
PHP7, hhvm & co
LIES, DAMN LIES AND BENCHMARKS
Slide 22
Slide 22 text
PHP7, hhvm & co
Slide 23
Slide 23 text
PHP7, hhvm & co
Slide 24
Slide 24 text
PHP7, hhvm & co
Features
• Rewamped Engine
• True 64bit support
• Large string and LFS (Large file support)
• Consistent variables syntax
• Error exception instead of fatal error
• Scalar type declarations
• Zero cost asserts
Slide 25
Slide 25 text
PHP7, hhvm & co
Features
• Secure RNG
• PHP4 constructors deprecated
• JIT enabled PCRE
• Removed ext/mysql, ext/ereg and more
• New ?? and spaceship operators
• New JSON parser
• Many other features, a lot already target 7.1
Slide 26
Slide 26 text
PHP7, hhvm & co
Error exception instead of fatal error
Slide 27
Slide 27 text
PHP7, hhvm & co
Error exception
https://wiki.php.net/rfc/catchable-call-to-member-of-non-object
method());
// The exception class name is EngineException
// in alpha1
} catch (Error $e) {
// pass
}
echo "Alive\n";
Slide 28
Slide 28 text
PHP7, hhvm & co
Scalar Type Declarations
Slide 29
Slide 29 text
PHP7, hhvm & co
Scalar Type Declarations
Slide 30
Slide 30 text
PHP7, hhvm & co
Null Coalesce Operator (??)
Slide 31
Slide 31 text
PHP7, hhvm & co
Null Coalesce Operator (??)
Slide 32
Slide 32 text
PHP7, hhvm & co
PHP Language Specification
https://github.com/php/php-langspec
Slide 33
Slide 33 text
PHP7, hhvm & co
Open & Public Specifications
Competions++
Slide 34
Slide 34 text
PHP7, hhvm & co
Slide 35
Slide 35 text
PHP7, hhvm & co
Slide 36
Slide 36 text
PHP7, hhvm & co
(Most) Focus on Speed
Slide 37
Slide 37 text
PHP7, hhvm & co
Slide 38
Slide 38 text
PHP7, hhvm & co
SPEED is NOT SCALE
Slide 39
Slide 39 text
PHP7, hhvm & co
SPEED is UX
Slide 40
Slide 40 text
PHP7, hhvm & co
Scale is Server Side
Architecture (Apps, Ops, Net, …)
Slide 41
Slide 41 text
PHP7, hhvm & co
My code sucks.
Slide 42
Slide 42 text
PHP7, hhvm & co
Yours too.
Slide 43
Slide 43 text
PHP7, hhvm & co
Steroids++
Slide 44
Slide 44 text
PHP7, hhvm & co
So?
Slide 45
Slide 45 text
PHP7, hhvm & co
Slide 46
Slide 46 text
PHP7, hhvm & co
Slide 47
Slide 47 text
PHP7, hhvm & co
QB
Slide 48
Slide 48 text
PHP7, hhvm & co
QB
Slide 49
Slide 49 text
PHP7, hhvm & co
QB
Source: http://php-qb.net/index.php/2-uncategorised/27-comparing-performance-in-qb-with-hhvm
See http://benchmarksgame.alioth.debian.org/u32/performance.php?test=spectralnorm or other