Yii2高级模版的配置文件

2021年1月29日 gaofei0357 阅读(1.56K)
配置文件可以说是一个项目最基础的部分,我们所用到的数据库配置,redis配置,都会全部放到一个配置文件中方便我们管理,Yii2中的配置的设置可以说更丰富,下面是高级模版 /common/config/main-local.php文件的代码,这个就是咱们的配置文件。
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=feifeixueyuan',
'username' => 'root',
'password' => 'wwsdfsdsd',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
],
];
我们先看一下如何连接数据库,Yii帮我们建立了一个在PHP的PDO之上的数据访问层(DAO),DAO为不同的数据库提供了统一的API接口,比如ActiveRecord就是数据库与模型model的交互,QueryBuilder用于创建动态的查询语句。
在mysql中,我们想访问数据库,我们需要创建一个yii\db\Connection 实例来与之建立连接。
$db = new yii\db\Connection([ 
   'dsn' => 'mysql:host=localhost;dbname=example', 
   'username' => 'root', 
   'password' => '', 
   'charset' => 'utf8', ]);
由于数据库需要在多个地方使用,这样会很不方便,一个常用的做法是将配置放在应用组件中
return [ 
   'components' => [ 
      'db' => [ 
         'class' => 'yii\db\Connection',
         'dsn' => 'mysql:host=localhost; dbname=example', 
         'username' => 'root', 
         'password' => '', 
          'charset' => 'utf8',
         ], 
        ], 
      ];
之后通过Yii::$app->db就可以访问数据库了,看到这在回过头来看看一开始的配置文件代码是不是就很明白啦。我们若是要发邮件就会用到Mailer类,我们只需要在配置应用(components)中定义相应的类和一些常用的配置就很容易使用啦。

主从配置

我们在components应用的db中加入下面的设置即可使我们的数据库配置变为主从配置。
'slaveConfig' => [ //从库的通用配置
'username' => '',
'password' => '',
'attributes' => [
PDO::ATTR_TIMEOUT => 10, //超时时间
],
],

//从库的配置列表
'slaves' => [
['dsn' => 'dns for slave server 1'],
['dsn' => 'dns for slave server 2'],
]
当我们通过调用 yii\db\Command::execute() 来执行的语句都被视为写操作,通过调用 yii\db\Command 中任一 “query” 方法来执行的语句都被视为读操作,还可以通过Yii::$app->db->slave来获取当前有效的从库。


关注微信公众号『点点虫网络

第一时间了解最新网络动态
关注博主不迷路~

分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注点点虫网络