Home > Article > Backend Development > Is there any difference between the init method in Yaf that instantiates multiple classes at the beginning and stores them in private properties and the need to create a new class again?
Note: init in Yaf is understood by default as __construct()
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); $this->order = new Order(); $this->extend = new OrderEx(); } public function listAction(){ $this->order->public(); } public function makeAction(){ $this->extend->public(); } }</code>Is
any different from the following writing?
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); } public function listAction(){ $order = new Order(); $order->public(); } public function makeAction(){ $extend= new extend(); $extend->public(); } }</code>
I am a newbie, I hope to have good programming habits, but some basics are not solid, so I hope you can give me some advice
Note: init in Yaf is understood by default as __construct()
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); $this->order = new Order(); $this->extend = new OrderEx(); } public function listAction(){ $this->order->public(); } public function makeAction(){ $this->extend->public(); } }</code>Is
any different from the following writing?
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); } public function listAction(){ $order = new Order(); $order->public(); } public function makeAction(){ $extend= new extend(); $extend->public(); } }</code>
I am a newbie, I hope to have good programming habits, but some basics are not solid, so I hope you can give me some advice
Writing like the above can ensure a singleton in the current class scope and reduce repeated writing of new. However, it is not suitable to write here for classes that need to be instantiated when used, and if your class is developed following the same interface, When replacing, you only need to modify new in init. Anyway, I still like to have Ioc containers