preloader

Having captured more than 78% of the web development languages market, PHP is a fast, popular, and well supported web development language. PHP 8 has been long anticipated, but the wait is just about over! This information-packed intensive core PHP course is designed for PHP developers with a knowledge of PHP 5.x or 7.x.

PHP 8 for PHP Developers

  • MEETINGS

    Tue/Thu @ 11 AM Eastern:
    05 Jan | 02 Feb | 02 Mar 2021

  • DURATION

    4 Sessions: 2 hours each session

  • FEE

    Originally $700, now discounted to $350

About Course

Having captured more than 78% of the web development languages market, PHP is a fast, popular, and well supported web development language. PHP 8 has been long anticipated, but the wait is just about over! This information-packed intensive core PHP course is designed for PHP developers with a knowledge of PHP 5.x or 7.x. Learn about all the great new features in PHP 8 with a focus on migration from PHP 7 to PHP 8. Get a head start and leave the rest of the crowd behind.

Detailed Course Outline

Core OOP Coding Differences

There are two words that causes any developer to start looking nervously over his or her shoulder: _backwards incompatible_. Thus was born the phrase _BC Breaks_ meaning code that breaks due to backwards compatibility issues. In this unit we cover core PHP 8 language coding differences you must learn about in order avoid BC breaks.

This unit includes the following topics:

  • Core OOP Coding Differences
  • Magic Method Changes: Constructor
  • Magic Method Signatures
  • Magic Method Signatures Example
  • Magic Method Changes: Sleep
  • Serialization Differences
  • Custom Serialization
  • Custom Serialization Example
  • Private Method Signatures
  • Private Method Signature Example
  • Static Anyone?
  • Object Properties No Longer Array Keys
  • Anonymous Class Control
  • Stringable Interface
  • Namespace Handling
  • Namespace Handling Considerations
  • Namespace Handling BC Break
  • Trait Handling Refinements
  • Trait Abstract Signature Check
  • Private Abstract Methods in Traits
  • Private Abstract Methods in Traits
  • Variance Support
  • Variance Support
  • Covariance
  • Contravariance
  • SPL Differences: SplFileObject
  • SPL Differences: SplHeap
  • SPL Differences: SplDoublyLinkedList
  • SPL Autoloading: spl_autoload_register()
  • Lab: Core OOP Coding Differences

Procedural Programming Differences

Prior to May 2000, when PHP 4 was officially released, all PHP programming used what is now referred to as _procedural_ coding style. Procedural programming is distinctive in its extensive use of libraries of _functions_ rather then OOP classes. In this unit we focus on PHP 8 changes to procedural programming.

This unit includes the following topics:

  • Procedural Programming Differences
  • Differences in String Handling
  • Non-Well-Formed Numeric Strings
  • Numeric Strings BC Breaks
  • Numeric Strings BC Break Examples
  • Comparison Madness
  • Comparison Examples
  • String Handling: Needle Argument
  • Differences If No Needle
  • v*printf() Changes
  • substr*() NULL Length
  • Crazy Uncle implode()
  • Second Param parse_str()
  • Locale Independent Float-to-String
  • Locale Independent Float-to-String
  • No More Function Overloading
  • Function Overloading Example
  • Array Handling Differences
  • Array Curly Brace Usage
  • Hello, Operator?
  • Non Scalar Operands
  • Constants Are Now Constant
  • File Handling
  • Function Differences
  • Disable Functions
  • Disable Functions Example
  • Security Related Function Changes
  • Security Function Change: assert()
  • Security Function Change: password_hash()
  • Security Function Change: crypt()
  • URL Handling Changes
  • Misc Changes
  • Changes Pertaining to Windows
  • Lab: Procedural Programming Differences

Extension Gotchas

In addition to changes to the PHP core, there have been significant changes to a number of PHP extensions as well. In this unit we identify critical changes in key extensions and things you need to watch out for to avoid BC breaks.

This unit includes the following topics:

  • Extension Gotchas
  • Objects Rather Than Resources
  • Objects Rather Than Resources
  • Objects / Resources: XML Parser
  • XMLWriter Differences
  • CURL Extension Gotchas
  • Mbstring Extension Gotchas
  • Mbstring Extension Gotchas: mb_ereg*
  • Mbstring Extension Gotchas: mb_ereg*
  • Mbstring Extension Gotchas: mb_strrpos
  • Mbstring Removed Aliases
  • Mbstring Extension Gotchas: Other
  • PCRE Extension Gotchas
  • PCRE Extension Gotchas Example
  • Intl Extension Gotchas
  • Database Extension Gotchas
  • PDO Gotchas
  • GD Extension Gotchas
  • GD Extension Gotchas
  • Reflection Extension Gotchas
  • Reflection Extension Gotchas
  • Reflection Extension Improvements
  • Zip/ZipArchive Extension Gotchas
  • ZipArchive
  • ZipArchive Example
  • Misc Extension Gotchas
  • Lab: Extension Gotchas

New Cool Stuff

This is the part you all have been waiting for, right? The new **cool stuff**. Without further ado, let's roll!

This unit includes the following topics:

  • New Cool Stuff
  • JIT Compiler
  • JIT Compiler: How to Enable
  • JIT Compiler: Controls
  • JIT Compiler: Controls Continued
  • JIT Example
  • The Case for Union Types
  • Union Types: Syntax
  • Union Types: Exceptions
  • Mixed Types
  • Mixed Types Example
  • Mixed Types Impact on Variance
  • Mixed Types Impact on Variance
  • Weak References
  • Weak Reference Example
  • Weak Map
  • Weak Map Usage Example
  • Variadic Operators
  • Nullsafe Operator
  • Nullsafe Operator Short-Circuiting
  • Match Expressions
  • Match Expressions: Considerations
  • Match Expressions: No Silent Coercion
  • Static Return Type
  • Named Arguments
  • Named Arguments: Order Independence
  • Named Arguments: Skipping Defaults
  • Attributes
  • Attribute Syntax
  • Simple Attribute Example
  • Attribute Use Case: Original
  • Attribute Use Case: Revised
  • Attribute Class
  • Constructor Argument Promotion
  • Constructor Argument Promotion
  • Lab: Cool Stuff

Lots of Improvements

There have been many improvements in syntax and general handling of classes and functions in PHP 8. A number of improvements were actually first tested in PHP 7.4, and fully implemented in PHP 8.

This unit includes the following topics:

  • Lots of Improvements
  • Typed Properties
  • Typed Properties
  • Typed Properties
  • Arrow Functions
  • Arrow Functions
  • Arrow Functions
  • OOP Syntax Improvements
  • Uniform Variable Syntax
  • What's "De-Referencing"?
  • Uniform String Dereferencing
  • Dereferencing Constants
  • Expressions Anywhere
  • Extended Use of ::class
  • No Comma Left Behind
  • JSON is Here to Stay!
  • Try/Catch/Finally New Stuff
  • array_splice() Improvements
  • array_splice() Example
  • array_slice() Performance Boost
  • array_slice() Example
  • String Handling Enhancements
  • Stable Sorting
  • Stable Sorting Example
  • Affect on Keys in Stable Sorting
  • Illegal Sort Functions
  • Strings: Beginning, Middle and End
  • Strings: Beginning, Middle and End
  • Strings: str_contains
  • SQLite Authorizer
  • Other Improvements
  • Other Improvements
  • Other Improvements

Cool Stuff in Extensions

As well as core additions, there have been a number of incredibly use enhancements in a number of PHP extensions. This unit focuses on new and cool stuff in PHP 8 extensions.

This unit includes the following topics:

  • Extension Cool Stuff
  • OpenSSL Improvements
  • New Tokenizer Class
  • New Tokenizer Class
  • Security Filtering Improvements
  • Improvement in Timezone Change Handling
  • DateTime Creation
  • PHP Web Extension Improvements
  • Miscellaneous Extension Improvements
  • Lab: Cool Stuff in Extensions

Error Handling Improvements

Error handling has been strengthened in PHP 8. As many of you have observed during the transition from PHP 5 to PHP 7, error handling was improved. With each successive release of PHP 7.x, you also observed that bad programming practices are slowly being restricted. PHP 8 goes one step further, as explained in this unit.

This unit includes the following topics:

  • Error Handling Improvements
  • Warnings Promoted to Fatal Errors!
  • Warnings Promoted: Array
  • Warnings Promoted: String
  • Undefined Constants Now Fatal Errors
  • Notices Promoted to Warnings!
  • Error Level Defaults Changed
  • Use of Parent
  • No Longer @Silent
  • Using @ Operator With error_reporting()
  • Inheritance and Method Signatures
  • Error Related INI Directives
  • Compile Time Warning Changes
  • Clean Shutdown
  • Non Capturing Catches
  • Lab: Error Handling

Going, Going ... Not Quite Gone

Using classes, methods, functions, etc. on the _deprecated_ list are not going to break your code, however it's an indication that at some point in the near future these constructs will be removed from the language. Accordingly, it's important for PHP developers to at least be aware of the more important deprecated functionality in PHP 8.

This unit includes the following topics:

  • Going, Going ... Not Quite Gone
  • Core Deprecations
  • Deprecations: Enchant
  • Deprecations: Reflection
  • Things Removed
  • Each What, You Say?
  • __autoload: Loads No More
  • Removed Classes
  • Security Related Removals
  • Removals Related to Extensions
  • Misc Extension Removals
  • Lab: Deprecations

Fees

Originally priced at $700, the course fee has been reduced by 50% to help potential attendees who are affected by the worldwide pandemic. Until the end of the year, as an added bonus for signing up for the course, we are offering a free 30-day trial account on the LfPHP Cloud Service.

Instructor

instructor

Cal Evans

Senior Instructor

Related Courses

course thumb
  • Winter 2020 | Spring 2021
  • Drupal

Drupal Module Development

Drupal is the most popular modular content management system (CMS) in the PHP eco-system. In this course you learn how to develop modules for Drupal 8 and 9.

Pick Date
course thumb
  • Winter 2020 | Spring 2021
  • MongoDB

MongoDB

Our MongoDB teaches you how to to be more productive in a short amount of time using MongoDB, with a focus on how to incorporate MongoDB into a PHP application.

Pick Date
course thumb
  • Winter 2020 | Spring 2021
  • PHP 8

PHP 8 for PHP Developers

Designed for PHP developers with a knowledge of PHP 5.x or 7.x, in this course you learn about all the great new features in PHP 8 with a focus on migration from PHP 7 to PHP 8. Get a head start and leave the rest of the crowd behind.

Pick Date