Slide 1

Slide 1 text

The Latest in PHP January 2019 Edition

Slide 2

Slide 2 text

Presented by Chris Gmyr @cmgmyr

Slide 3

Slide 3 text

PHP Supported Versions 4 5.6 & 7.0 are EOL! 4 7.1 Security Only until Dec 1, 2019 4 7.2 & 7.3 Active Development 4 7.4 is underway (~Dec 2019) http://php.net/supported-versions.php

Slide 4

Slide 4 text

PHP Releases 4 5.6.40 & 7.0.33 Final Security Release 4 7.1.26 4 7.2.14 4 7.3.1 (opcache) Links: 4 http://php.net/ChangeLog-7.php 4 http://php.net/ChangeLog-5.php

Slide 5

Slide 5 text

RFCs - Deprecations for PHP 7.3 4 Undocumented mbstring function aliases 4 String search functions with integer needle (type juggling issue) 4 fgetss() function and string.strip_tags filter (duplicate of strip_tags() + stream) 4 FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED (covered by other consts, or unused) https://wiki .php.net/rfc/deprecationsphp7_3

Slide 6

Slide 6 text

What's new in 7.3? JSON_THROW_ON_ERROR // 7.2 json_decode("{"); json_last_error() === JSON_ERROR_NONE // the result is false json_last_error_msg() // The result is "Syntax error"

Slide 7

Slide 7 text

What's new in 7.3? JSON_THROW_ON_ERROR // 7.3 use JsonException; try { $json = json_encode("{", JSON_THROW_ON_ERROR); return base64_encode($json); } catch (JsonException $e) { throw new EncryptException('Could not encrypt the data.', 0, $e); }

Slide 8

Slide 8 text

What's new in 7.3? is_countable() // 7.2 if (is_array($people) || $people instanceof Countable) { // $people is countable }

Slide 9

Slide 9 text

What's new in 7.3? is_countable() // 7.3 if (is_countable($people)) { // $people is countable }

Slide 10

Slide 10 text

What's new in 7.3? 4 http://php.net/manual/en/migration73.new- features.php 4 https://hackernoon.com/new-features-of-php-7-3- complete-guide-49d254e43ee1

Slide 11

Slide 11 text

Lookahead to 7.4 4 Preloading (files in-memory) 4 Typed properties (public string $name;) 4 ext-hash always enabled 4 Password Hashing Registry 4 Null Coalescing Assignment Operator // current $data['date'] = $data['date'] ?? new DateTime(); // new $data['date'] ??= new DateTime(); https://stitcher.io/blog/new-in-php-74

Slide 12

Slide 12 text

Latest Versions 4 Laravel: 5.7.21 4 Symfony: 4.2.2 4 Drupal: 8.6.7 4 PHPStorm: 2018.3.3 4 VSCode: 1.30.2

Slide 13

Slide 13 text

PHP Conferences - January Day Camp 4 Developers: Beyond Performance January 18, Online https://phpa.me/daycamp-4-devs

Slide 14

Slide 14 text

PHP Conferences - February SunshinePHP 2019 February 7–9, Miami, FL http://sunshinephp.com PHP UK Conference 2019 February 20–22, London, England https://www.phpconference.co.uk

Slide 15

Slide 15 text

Nomad PHP US: Testing Like You've Never Tested Before (Because You Haven't) presented by Steve Grunwell January 17, 2019 at 09:00pm EST UK: Advanced WordPress: Plugin Creation presented by Peter MacIntyre January 17, 2019 at 02:00pm EST https://nomadphp.com/

Slide 16

Slide 16 text

Open Call for Papers Dutch PHP CFP Deadline: January 28, 2019 June 6 - 8, Amsterdam https://www.phpconference.nl/ PHPKonf 2019 CFP Deadline: January 31, 2019 May 4, 2019, Istanbul, Turkey https://cfp.phpkonf.org

Slide 17

Slide 17 text

Upcoming regional events Oct 13-15 - All Things Open - http://allthingsopen.org

Slide 18

Slide 18 text

Notable News & Articles 4 Laracon Online 2019 ($12 March 6th) 4 104: Jonathan Reinink - Pushing More Work to the Database 4 Faster Code Coverage 4 Writing better Drupal code with static analysis using PHPStan 4 Tips to Speed up Your Phpunit Tests 4 Q&A on the Book Refactoring - Second Edition

Slide 19

Slide 19 text

Next Month @ TrianglePHP TDB Presented By YOU?!?! Thursday, February 21, 6pm @ Atlantic BT Need an Idea? 4 Testing 4 Security 4 Performance 4 Git

Slide 20

Slide 20 text

Have a Job/Need a Job Who's hiring? Who's looking? What are you looking for? Book Swap

Slide 21

Slide 21 text

Tonight @ TrianglePHP Apps Without Ops - Web Development in Google Cloud Platform Presented By - Chris Deaton Thank you to Atlantic BT for hosting and refreshments!