PHP 5.6: New and Deprecated Features Mark Niebergall https://joind.in/13884
Transcript
1. PHP 5.6: New and Deprecated Features Mark Niebergall
https://joind.in/13884
2. About Mark Niebergall Developing in PHP since 2005 Masters
degree in Information Systems Senior Software Engineer and Team
Lead Occupational health screening project Security: SSCP, CSSLP
Certified PHP, databases, JavaScript Enjoy being outdoors
3. Supported Versions See
http://php.net/supported-versions.php
4. State of PHP PHP 5.3.29 EOL for PHP 5.3 release August 14,
2014 PHP 5.4.40 released April 16, 2015, aging but still heavily
used PHP 5.5.24 is current, many servers running PHP 5.5.X PHP
5.6.8 released April 16, 2015 PHP 5.6.0 available since August 28,
2014 PHP 5.7 is under development PHP 7.0 is under development o
PHP 6 unicode, branched but will never have production release o
Vote for version 6 vs 7, decided on 7 o Focused on performance o
More compact data structures - easier for JIT compiler o Improved
variable syntax (see
https://wiki.php.net/rfc/uniform_variable_syntax)
5. Live Demo Setup 2 vagrant virtual machines with puppet o 1
with PHP 5.5.8 o 1 with PHP 5.6.0 o Automatic code sync so same
code resides on both web servers See
https://qa.php.net/howtohelp.php
6. PHP 5.6 Incompatible Out With The Old Array keys won't be
overwritten when defining an array as a property of a class via an
array literal Source:
http://us1.php.net/manual/en/migration56.incompatible.php
7. PHP 5.6 Incompatible Out With The Old json_decode strictness
Stream wrappers now verify peer certificates and host names by
default when using SSL/TLS GMP (GNU Multiple Precision Arithmetic
Library) resources are now objects Mcrypt functions now require
valid keys and initialization vectors Source:
http://us1.php.net/manual/en/migration56.incompatible.php
8. PHP 5.6 Deprecated On the way Out Calling a method from an
incompatible context
9. PHP 5.6 Deprecated On the way Out $HTTP_RAW_POST_DATA and
always_populate_raw_post_data o use php://input instead
(file_get_contents('php://input')) o php://input is now reusable
Source:
http://us1.php.net/manual/en/migration56.deprecated.php
10. PHP 5.6 Deprecated On the way Out iconv and mbstring
encoding settings o default_charset with UTF-8 as default value o
iconv.input_encoding, iconv.output_encoding,
iconv.internal_encoding o mbstring.http_input,
mbstring.http_output, mbstring.internal_encoding Source:
http://us1.php.net/manual/en/migration56.deprecated.php
11. PHP 5.6 Changed Changed functionality crypt() will now
raise an E_NOTICE error if no salt parameter
12. PHP 5.6 Changed Changed functionality substr_compare() will
now accept 0 for its length parameter
13. PHP 5.6 Changed Changed functionality unserialize() will
now fail if passed serialized data that has been manipulated to
attempt to instantiate an object without calling its constructor
cURL @file vs CURLFile Mcrypt source default value for
mcrypt_create_iv PostgreSQL functions no longer experimental (ex:
pg_insert) PostgreSQL pg_send_* no longer block until query write
completion ReflectionClass::newInstanceWithoutConstructor() now
allows non-final internal classes to be instantiated
XMLReader::getAttributeNs() and XMLReader::getAttributeNo() now
return NULL if the attribute could not be found, like
XMLReader::getAttribute() Source:
http://us1.php.net/manual/en/migration56.changed-functions.php
15. PHP 5.6 New Functions New functions (continued) PostgreSQL:
pg_connect_poll(), pg_consume_input(), pg_flush(), pg_socket()
PDO_PGSQL: PDO::pgsqlGetNotify(), PDO::pgsqlGetPid() Zip:
ZipArchive::setPassword() Source:
http://us1.php.net/manual/en/migration56.new-functions.php
16. PHP 5.6 New Features New stuff Constant scalar
expressions
17. PHP 5.6 New Features New stuff Variadic functions
18. PHP 5.6 New Features New stuff Argument unpacking using AKA
Splat
19. PHP 5.6 New Features New stuff Exponentiation via **
20. PHP 5.6 New Features New stuff use const and use
function
21. PHP 5.6 New Features New stuff Upload file > 2GB o
Sorry, not going to show this one
22. PHP 5.6 New Features New stuff GMP now supports operator
overloading
23. PHP 5.6 New Features New stuff hash_equals: Timing attack
safe string comparison
24. PHP 5.6 New Features New stuff Magic method __debugInfo:
Define output for var_dump of class
25. Testing PHP builds PHP QA Testing overview at
https://qa.php.net/ Test a build o wget
http://downloads.php.net/tyrael/php-5.6.9RC1.tar.gz o tar xvzf
php-5.6.9RC1.tar.gz o cd php-5.6.9RC1 o ./configure o make test
Write testcases Give PHP QA team server time See
https://qa.php.net/howtohelp.php