• Objects and Classes
  • Inheritance
  • Encapsulation
  • Abstract Classes
  • Interfaces
  • Static Members
  • Late Static Binding
  • Dependency Injection
  • Polymorphism
  • Traits Introduction
  • Method Overriding in Traits
  • Handling Conflicts in Traits
  • Access Levels in Traits
  • namespaces
  • Type Hinting