Yii2.0的主要目录结构如下:
.
├── commands/ // 命令行脚本
├── components/ // 组件类
├── config/ // 应用配置文件
├── controllers/ // 控制器类
├── models/ // 模型类
├── runtime/ // 运行时文件
├── tests/ // 测试文件
├── vendor/ // Composer 依赖包
├── views/ // 视图文件
├── web/ // Web 入口文件和资源文件
├── widgets/ // Widget 组件类
├── Yii.php // Yii 框架入口文件
├── composer.json // Composer 配置文件
└── README.md // 项目说明文件
这个目录结构遵循了MVC(Model-View-Controller)的设计模式,其中:
commands/ 目录包含命令行脚本;
components/ 目录包含组件类,可以在应用程序中共享使用;
config/ 目录包含应用程序的配置文件,如数据库连接、路由、邮件配置等;
controllers/ 目录包含控制器类,处理来自浏览器的请求并生成响应;
models/ 目录包含模型类,用于访问和管理应用程序中的数据;
runtime/ 目录包含应用程序的运行时文件,如缓存、日志等;
tests/ 目录包含应用程序的测试文件;
vendor/ 目录包含通过Composer安装的依赖包;
views/ 目录包含视图文件,用于渲染页面的内容;
web/ 目录包含Web应用程序的入口文件和资源文件,如静态文件、图片等;
widgets/ 目录包含Widget组件类,可以在视图中使用的小部件;
Yii.php 文件是Yii框架的入口文件,负责自动加载其他类文件;
composer.json 文件是Composer配置文件,用于定义应用程序的依赖关系和自动加载规则;
README.md 文件是项目的说明文件。
底层原理是通过Yii框架的自动加载机制,实现了类文件的自动加载和命名空间的映射关系。当Yii框架的入口文件 Yii.php 被加载时,会注册一个自动加载函数,根据PSR-4标准来加载对应命名空间下的类文件。当应用程序需要使用某个类时,只需要按照PSR-4标准的路径规则命名类文件,并放置在相应目录下即可。