在Yii中创建新对象或者初始化已经存在的对象广泛的使用配置,配置通常包含被创建对象的类名和一组将要赋值给对象的属性的初始值,这里的属性是Yii2的属性。
还可以在对象的事件上绑定事件处理器,或者将行为附加到对象上。从而在定义了对象的初始值的同时,充分规定对象的运行时的动态特性。 (推荐学习:yii框架)
以下代码中的配置被用来创建并初始化一个数据库连接:
$config = [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=demo', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ]; $db = Yii::createObject($config);
Yii::createObject()是Yii2中最常用的用来创建对象的方法,其内容是从DI Container中去取的对象。
这个方法方法接受一个配置数组并根据数组中指定的类名创建对象,对象实例化后,剩余的参数被用来初始化对象的属性,事件和行为。
在Yii2.1中,配置数组中用来表示类名的键值由class变成了__class,但是配置的原理是不变的。
对于已存在的对象,可以使用 Yii::configure() 方法根据配置去初始化其属性, 就像这样:
Yii::configure($object, $config);
请注意,如果配置一个已存在的对象,那么配置数组中不应该包含指定类名的 class 元素。
配置是Yii2的一个特色
在编程中,有个非常重要的概念叫“委托”,就是一个对象A可以依靠另一个对象B去完成特定的功能,典型的应用就是策略模式了。
要实现“委托”,要有这么个流程:在对象A实例化时注入另一个对象B;A持有对象B;对象A委托对象B去完成特定的功能。
“注入”“持有”“委托”都是设计模式中的高频词汇,通过这些操作可以扩展类的功能。
Atas ialah kandungan terperinci yii2 如何配置. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!