Метод init()
:
public function init() { }
Метод __construct()
:
public function __construct() { }
Итак, в чем разница между ними и какой должна быть использована?
init()
– это метод любого объекта, который простирается от yii\base\Object
(и большинство объектов простирается от него).
Из официальных документов:
Помимо свойства свойства, Object также вводит важный жизненный цикл инициализации объекта. В частности, создание нового экземпляра объекта или его производного класса будет включать следующие жизненные циклы последовательно:
- вызывается конструктор класса;
- свойства объекта инициализируются в соответствии с данной конфигурацией;
- вызывается метод init ().
В приведенном выше примере оба этапа 2 и 3 встречаются в конце конструктора классов. Рекомендуется инициализировать объект в методе init (), потому что на этом этапе уже применяется настройка объекта.
Рекомендуется использовать init()
, вы даже можете увидеть его из исходного кода и расширений, но в некоторых случаях вы можете использовать __construct()
. Есть несколько рекомендаций по реализации этого, вы можете найти его на одной странице в официальных документах здесь .
__constuct
– это родная функция языка PHP, вы можете прочитать дополнительную информацию об этом в официальных документах PHP в этом разделе .