Yii2
一、Yii2 简介
Yii 取自「Yes It Is」—— 强调”快”。Yii2 在国内外都有稳定用户群,特点:
- Active Record + Query Builder 双模式 ORM,比 Laravel Eloquent 更灵活
- Gii 代码生成器:图形化生成 Model / CRUD / 模块,5 分钟出一套后台
- 内置 RBAC:角色权限管理开箱即用
- Asset Bundle:前端资源打包/版本管理(早于 webpack 时代的解决方案)
- 两套骨架:Basic(小项目)和 Advanced(前后台分离)
性能在传统 PHP 框架里属于第一梯队,仅次于 Yaf/Phalcon 这类 C 扩展。
二、安装
1 | # Basic 模板 |
启动:
1 | php yii serve # 内置开发服务器 |
三、目录结构(Basic)
1 | basic/ |
四、Active Record 示例
1 |
|
五、Gii 代码生成
开 config/web.php:
1 | if (YII_ENV_DEV) { |
访问 http://localhost/index.php?r=gii,可视化生成:
- Model Generator:根据表结构生成 AR 模型
- CRUD Generator:生成完整的增删改查页面
- Module Generator:生成模块骨架
后台快速搭建神器。
六、RBAC 权限
1 | $auth = Yii::$app->authManager; |
七、踩坑笔记
| 坑 | 现象 | 解法 |
|---|---|---|
runtime 不可写 | 500 错误 | 配权限:chmod -R 775 runtime web/assets |
| Asset 资源 404 | CSS/JS 加载失败 | 检查 web/assets 可写、@webroot 别名正确 |
| CSRF 报错 | POST 提示 “Unable to verify your data” | 表单加 <?= Html::csrfMetaTags() ?> 或关 enableCsrfValidation |
| 数据库时间字段 | 存进去 0000-00-00 | 配置 attributeBehaviors 自动写时间戳 |
| Advanced 模板路由乱 | URL 变 /frontend/web/ | nginx 用 rewrite 隐藏 frontend/web |
| PHP 8.1+ 兼容 | deprecation warnings 满屏 | 升 Yii2.0.45+,老版本不兼容 |
八、Yii2 vs Yii3
Yii3 已开发多年仍未正式发布,Yii2 仍是当前推荐版本。如果你看到 Yii3 的资料,目前还不建议生产使用。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael's Blog!
评论




