美文网首页PHP干货分享
YII2 框架 相关学习

YII2 框架 相关学习

作者: JUNE言JUNE语 | 来源:发表于2018-03-06 17:46 被阅读32次

不定期更新
【该文档在更新过程中可能会存在部分未完成的段落,请自行忽略】
资料参考自http://www.yiichina.com/doc/guide/2.0
感觉还是权威指南靠谱

2018-03-06

controller & action
yii2默认的controller跟action是按-分割的
每一个action的方法命名都是前缀为action
例如 controller/action为 MyIndexController/actionMyAction
那么请求的参数应该是?r=my-index/my-action

2018-03-07

Query
yii2Query内部的queryInternal内置了记录日志的代码

Command类中queryInternal方法
Yii::info($rawSql, 'yii\db\Command::query');

只需要在web.php中设置对应类别的日志输出即可

[
    'class' => 'yii\log\FileTarget',
    'levels' => ['info'],
    'logVars' => [],
    'categories' => ['yii\db\Command::execute'],
    'logFile' => '@runtime/logs/sql.log',
],

2018-03-19

setPathOfAlias

路径别名
Yii中使用了大量的路径别名,例如框架核心代码vendor的路径,运行日志runtime等等
一般情况下在开发的过程中,我们比较多使用的是获取对应的别名。
如何知道在当前系统上我们,直接在编辑器中全局搜索setPathOfAlias即可

image.png

toArray

yii2支持了Query中直接返回一个二维数组,相当于直接拆箱,不需要再手动封装一层getAttributes(),但是需要注意,避免使用习惯了所有的情况都使用asArray,还是需要根据实际情况去使用的,如果获取数据后直接修改更新,那么则不应该使用asArray方法

注 另外参考这里 http://www.yiichina.com/doc/guide/2.0/structure-models#fields

2018-03-20

Session

Yii框架已经封装了对Session的一系列操作,对应的对象获取在

Yii::$app->session;

一般建议使用该对象来操作session,原因是Yii框架已经对其进行了一定的封装,
当然,我们也可以基于该对象进行二次封装

信息
例如我们对session进行操作时需要提前开启session,否则会报错,但是使用Yii框架自带的则不需要考虑这个问题

log

  1. Yii框架封装
位置:\yii\BaseYii
function
getLogger() // 注 logger是一个单例 全局只有一个logger实例
setLogger()
trace()// 该方法只有开启YII_DEBUG且Level=Logger::LEVEL_TRACE才会记录
error()
warning()
info()
// 后面这两个是用于性能分析
beginProfile()
endProfile()

个人意见: 由于logger是全局单例,建议在项目中自己再封装多一层,方便后期如果针对日志有其他的需要补充时可以直接修改封装的方法

举个例子
Yii2 打开数据库查询日志
在 web.php文件中追加

[
    'class' => 'yii\log\FileTarget',
    'levels' => ['info', 'warning', 'error'],
    'logVars' => [],
    'categories' => ['yii\db\*'],
    'logFile' => '@runtime/logs/sql.log',
],

这样就可以指定所有跟DB相关的日志都记录到runtime下面的logs文件夹中的sql.log

另外,yii框架中的日志是不会实时写入的
logger object中的日志数量超过flushInterval,log
才会被刷新到log targets, 当对应的数量超过exportInterval时,才会被刷新到对应的target中(如写到log文件中)
或者是当一个请求结束,log也会被刷新到对应的target中

注意不是必要情况下不要修改flushInterval & exportInterval的值

数据库访问(DAO)

Model

batchInsert

Query

where

使用query 生成left join语句的时候,结果会按照ID去去重


2018-03-26

Controller

https://www.jianshu.com/writer#/notebooks/8443116/notes/25740768

2018-09-02

好久没更新了

ArrayHelper

这是一个蛮好用的数组工具类
一般情况下数组日常使用的功能内置函数基本都能提供,例如array_column,array_keys,array_value,array_multisort等等

但是涉及到复杂的数组排序(ArrayHelper::multisort),多维数组取值(ArrayHelper::getValue), 整行获取(ArrayHelper::getColumn)

相关文章

  • Yii2 PHP框架

    自动加载函数 Yii2 PHP框架学习记录--自动加载函数 常量 Yii2 PHP框架学习记录-常量 $_SERV...

  • YII2 框架 相关学习

    不定期更新【该文档在更新过程中可能会存在部分未完成的段落,请自行忽略】资料参考自http://www.yiichi...

  • Yii2配置Nginx伪静态的方法

    这篇文章主要介绍了Yii2配置Nginx伪静态的方法,结合实例形式分析了Yii2框架针对Nginx伪静态的相关配置...

  • Yii2配置Nginx伪静态的方法

    这篇文章主要介绍了Yii2配置Nginx伪静态的方法,结合实例形式分析了Yii2框架针对Nginx伪静态的相关配置...

  • yii2 搭建测试环境

    yii2 本身集成了Codeception 测试框架,那么我们就在 yii2 中使用 Codeception 来做...

  • php 递归一棵树

    基于yii2框架: controller: public function actionDigui() { $...

  • 用发展的眼光追技术

    本文从 PHP 语言的 YII2 框架说起,简单谈一些技术的演变和发展脉络。 YII2 这个框架是 PHP 语言生...

  • 阿里云WEB直传php服务端

    阿里云服务端签名验证:YII2框架的 laravel框架的

  • Yii2 实例管理

    Yii2 实例管理 Yii2框架没有提供类似ZendFramework3中提供的ServiceManager.那么...

  • 【Yii2框架学习】框架搭建

    Windows下搭建 1、安装Composer [windows安装] Composer 是 PHP 的一个依赖管...

网友评论

    本文标题:YII2 框架 相关学习

    本文链接:https://www.haomeiwen.com/subject/bxerfftx.html