- 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