YII框架开发一个项目的通用目录结构:
testdrive/
index.php Web 应用入口脚本文件
assets/ 包含公开的资源文件
css/ 包含 CSS 文件
images/ 包含图片文件
themes/ 包含应用主题
protected/ 包含受保护的应用文件
yiic yiic 命令行脚本
yiic.bat Windows 下的 yiic 命令行脚本
commands/ 包含自定义的 'yiic' 命令
shell/ 包含自定义的 'yiic shell' 命令
components/ 包含可重用的用户组件
MainMenu.php 'MainMenu' 挂件类
Identity.php 用来认证的 'Identity' 类
views/ 包含挂件的视图文件
mainMenu.php 'MainMenu' 挂件的视图文件
config/ 包含配置文件
console.php 控制台应用配置
main.php Web 应用配置
controllers/ 包含控制器的类文件
SiteController.php 默认控制器的类文件
extensions/ 包含第三方扩展
messages/ 包含翻译过的消息
models/ 包含模型的类文件
LoginForm.php 'login' 动作的表单模型
ContactForm.php 'contact' 动作的表单模型
runtime/ 包含临时生成的文件
views/ 包含控制器的视图和布局文件
layouts/ 包含布局视图文件
main.php 所有视图的默认布局
site/ 包含 'site' 控制器的视图文件
contact.php 'contact' 动作的视图
index.php 'index' 动作的视图
login.php 'login' 动作的视图
system/ 包含系统视图文件
Yii 假定了一系列默认的目录用于不同的场合。如果需要,每个目录都可以自定义。
-
WebRoot/protected
: 这是 应用基础目录,是放置所有安全敏感的PHP脚本和数据文件的地方。Yii 有一个默认的application
别名指向此目录。此目录及目录中的文件应该保护起来防止Web用户访问。它可以通过CWebApplication::basePath 自定义。 -
WebRoot/protected/runtime
: 此目录放置应用在运行时产生的私有临时文件。此目录必须对 Web 服务器进程可写。它可以通过CApplication::runtimePath自定义。 -
WebRoot/protected/extensions
: 此目录放置所有第三方扩展。它可以通过 CApplication::extensionPath 自定义。 -
WebRoot/protected/modules
: 此目录放置所有的应用模块,每个模块使用一个子目录。 -
WebRoot/protected/controllers
: 此目录放置所有控制器类文件。它可以通过 CWebApplication::controllerPath 自定义。 -
WebRoot/protected/views
: 此目录放置所有视图文件,包含控制器视图,布局视图和系统视图。它可以通过 CWebApplication::viewPath 自定义。 -
WebRoot/protected/views/ControllerID
: 此目录放置单个控制器类中使用的视图文件。此处的ControllerID
是指控制器的 ID 。它可以通过 CController::viewPath 自定义。 -
WebRoot/protected/views/layouts
: 此目录放置所有布局视图文件。它可以通过CWebApplication::layoutPath 自定义。 -
WebRoot/protected/views/system
: 此目录放置所有系统视图文件。系统视图文件是用于显示异常和错误的模板。它可以通过CWebApplication::systemViewPath自定义。 -
WebRoot/assets
: 此目录放置公共资源文件。资源文件是可以被发布的,可由Web用户访问的私有文件。此目录必须对 Web 服务器进程可写。它可以通过CAssetManager::basePath 自定义 -
WebRoot/themes
: 此目录放置应用使用的不同的主题。每个子目录即一个主题,主题的名字即目录的名字。它可以通过 CThemeManager::basePath 自定义。