Overview of Namespaces
Defining Namespaces
Using Namespaces
Working with the Composer
Understanding Name Resolution Rules
Creating an Interface
Extending an Interface
Working with Predefined PHP Interfaces
Understanding PHP Traits
Creating a PHP Trait
Using PHP Magic Methods
Using PHP Constructors
Using PHP Deconstructors
Using PHP Singletons
Overview of PHP Abstract Classes
Creating PHP Abstract Classes
Creating a PHP Iterator
Using Stacking Iterators
Using SPL Iterators
Overview of PHP Generators
Creating a PHP Generator
Understanding the Basic PHP Type Hints
Using PHP Strict Type Declarations
Working with PHP Return Types
Overiew of PHP Closures
Creating a PHP Closure
Using Advanced Closures
Throwing an Exception
Implementing Nested Exceptions
Implementing PHP SPL Exceptions
Extending PHP Exceptions
Using the Finally Block
Debugging and Logging in PHP
Understanding Code Reuse
Understanding Function Feeding
Returning Data from a Function
Call-by-Value vs. Call-by-Reference
Runtime Error Handling in PHP
Implementing Design Patterns in PHP
Working with Web Services in PHP (REST e XML)
Understanding Introspection and Reflection in PHP
Security best practice in PHP |