Base classes and interfaces
Object
Object is the base class for many other Yii2 classes.
property feature
Why
To be able to make property public
initially and then seamlessly make it
private
or protected
by adding getter and setter method. That will not
change API. Results in less repetitive code. Performance drop isn't significant.
callbacks and expressions
[[Object::newInstance|newInstance]] method
This method is a powerful way to instantiate a class. Differences from new
:
- Calls class constructor (same the
new
operator); - Initializes the object properties using the name-value pairs given as the last parameter to this method;
- Calls [[Initable::init|init]] if the class implements [[Initable]].
Why
To support class dependencies and their lazy loading.
[[Initable]] interface
Developer will implement initable interface if running init()
needed and will
skip it if not.
Why
Indicates where init()
will be called and where not. More explicit than it was
in Yii 1.