讲师中心 微信公众号
AI工具推荐 视频效率加速

Yii2.0.55高级版目录结构详解【源码分析】

老雪同学_2114

老雪同学_2114

发布时间:2026-08-09 12:46:58

|

315人浏览过

|

来源于php中文网

原创

Yii2.0.55高级版目录结构是为中大型团队协作、前后端分离与安全部署设计的分层架构,必须严格遵循:common/共享模型与配置,frontend/和backend/为独立Web应用,console/执行命令行任务,environments/管理环境配置,web/子目录分别作为前后台入口,@webroot必须指向可写物理路径以保障AssetBundle发布正常。

yii2.0.55高级版目录结构详解【源码分析】

Yii2.0.55高级版目录结构不是随意堆砌的文件夹,而是为中大型团队协作、前后端分离、环境隔离与安全部署而设计的分层架构,必须严格遵循约定才能让自动加载、别名解析、AssetBundle发布和路由匹配正常工作。

核心目录层级与职责划分

进入项目根目录后,你会看到以下关键目录:

common/ —— 全局共享层:存放所有应用(frontend/backend/console)共用的模型、组件、配置、邮件模板。其中 config/params.php 定义全局参数,models/User.php 被前后台同时继承使用;【任何写在 common/models 下的类,都会被 frontend 和 backend 自动识别,无需额外注册】

frontend/ 和 backend/ —— 独立Web应用:各自拥有完整的 MVC 结构(controllers/、models/、views/)、独立入口 web/index.php、独立配置 main.php 和 params.php;它们不共享控制器或视图,但通过 common 复用业务逻辑。

console/ —— 命令行应用:用于执行迁移、定时任务、数据导入等后台操作;其 migrations/ 目录被 yii migrate 命令默认扫描,【若 runtime/cache 或 migrations 权限不对,yii migrate 会静默失败而非报错】

environments/ —— 环境配置枢纽:包含 dev/、prod/、test/ 子目录,每个目录下有 index.php(启用对应环境)和 *.php 配置文件;init 脚本运行时会将 environments/prod 中的配置复制到各应用的 config/ 目录下覆盖本地配置。

web 目录的物理路径与 URL 映射关系

高级模板中不存在单一的“网站根目录”,而是由多个 web 子目录分别承担不同角色:

frontend/web/ 是前台站点入口,Nginx 的 root 应指向此处;index.php 中 require(__DIR__.'/../../vendor/autoload.php') 表明它向上跨越两级找到 vendor;

backend/web/ 是后台管理入口,通常需映射到 /admin 路径;必须修改 backend/web/index.php 中的 $script = $_SERVER['SCRIPT_NAME'],否则 CSRF token path 会错配;

web 目录内 assets/ 不是静态资源原始位置,而是 AssetBundle 发布后的产物目录;css/、js/、images/ 等原始资源应放在 frontend/web/css/ 或 backend/web/js/ 下,由 AssetBundle 引用并自动发布;【若直接把 dist 文件扔进 frontend/web/assets/,Yii 不会识别也不更新,反而导致版本混乱】

配置加载链与别名展开顺序

第一步:web/index.php 加载 @vendor/autoload.php → 初始化 Composer 自动加载器;

第二步:require Yii.php → 启动框架核心;

第三步:加载 @common/config/main.php → 注册全局组件(如 db、mailer);

Yii Framework 2.0.51
Yii Framework 2.0.51

Yii Framework 2.0.51 官方 Basic 应用模板,适合旧项目兼容、升级验证和开发测试。

下载

第四步:加载 @frontend/config/main.php → 覆盖或合并 common 配置,注入 frontend 特有组件(如 user identityClass);

第五步:Yii::setAlias('@webroot', dirname(__DIR__)); —— 此处 __DIR__ 指向 frontend/web,所以 @webroot 实际为 frontend/ 目录;【@webroot 必须指向 Web 服务器能读取的物理路径,不能是 project-root/frontend,否则 assets 发布失败】

第六步:@web 别名由 request 组件动态生成,值为 /(根域)或 /myapp/(子目录部署),决定 HTML 中 和 <script> 标签的 baseUrl。</script>

environments/init 的实际作用机制

方法一:命令行初始化(推荐)

执行 php init → 选择 prod 环境 → 输入 root 密码确认 → 脚本自动将 environments/prod/*.php 复制到 common/config/、frontend/config/、backend/config/ 对应位置;

复制过程不覆盖已存在的 local 配置文件(如 params-local.php),但会强制覆盖 main-local.php 以外的所有 main.php;

方法二:手动同步(仅调试用)

直接 cp environments/prod/main.php frontend/config/main.php;但必须同步修改 frontend/config/params.php 中数据库 host、username 等字段,否则上线即连不上库;

注意:environments 目录本身不参与自动加载,init 只是单次拷贝动作;后续 config 修改必须重新运行 init 或手动同步,否则 prod 配置不会生效。

runtime 目录的权限与敏感性

第一步:确保 runtime/ 及其子目录(cache/、logs/、assets/、data/)对 Web 服务器用户(如 www-data)可写;

第二步:禁止将 runtime/ 放在 Web 可访问路径下;检查 Nginx 配置是否包含 location ~ ^/runtime { deny all; };

第三步:runtime/assets/ 是 AssetBundle 发布目标,每次清空该目录后首次访问页面会自动重建;但若 chmod 755 assets/ 而非 775,PHP 进程可能因无写权限卡住,浏览器显示空白页且无错误日志;

第四步:runtime/logs/app.log 记录所有 error/warning,当页面白屏时,第一反应是 tail -f runtime/logs/app.log,而不是看浏览器控制台。

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

2730

2025.09.04

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

20

2026.09.20

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

0

2026.09.20

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

180

2026.09.16

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

100

2026.09.16

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

80

2026.09.16

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

60

2026.09.16

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

40

2026.09.16

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

400

2026.09.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii Framework 2.0 API 官方文档
Yii Framework 2.0 API 官方文档

共0课时 | 0人学习

Yii2.0框架开发实战视频教程
Yii2.0框架开发实战视频教程

共22课时 | 9.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn