You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
13 years ago
|
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::create()]|create] 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.
|
||
|
|
||
|
Component
|
||
|
---------
|
||
|
|