Yii系列-01:Web App的构成

本文详细介绍了使用 Yii Framework 开发 PHP Web 应用时的应用目录结构。从 assets 目录到 protected 目录下的各子目录,再到 index.php 和 index-test.php 的作用,帮助读者全面了解 Yii 的工作原理。

使用 Yii Framework 开发 PHP web 应用,先用Yii自身的yiic命令行工具创建web app框架(参见Creating Your First Yii Application),创建后的应用目录结构如下图。

  • assets: 这个目录开发者可不关注。包含用户可公开访问的资源文件。web app运行时需要yii框架支持,但该框架在webapp之外,由框架内widget的图片等资源需要在web app内部可见,因此,assets目录就是将这些资源发布到的目标位置。里面的子目录由yii framework创建,都是一些十六进制的标识,内含各种css、image、js资源。
  • css、images目录:应用本身的资源目录,与yii framework无关。
  • themes:应用适用的外观主题,类似其他web应用的换肤功能。
  • protected:功能核心目录。Yii基于MVC概念建立,protected下核心的目录相应为 models(M)、views(V)、controllers(C)。
    • protected/commands:扩展shell命令,我没怎么用过这个;
    • protected/components:不属于MVC基本概念的其他组件放入本目录,本目录包含在应用的默认加载路径中;
    • protected/config:配置文件目录;针对不同的场合,可使用不同的配置文件,如测试时使用test配置(可以配置使用测试数据库),上线时使用main配置;web app 的组件(如session、db、url映射匹配方式等)都在此配置文件中声明其启动设置(具体参阅 CWebApplication);
    • protected/controllers:MVC 之 C,yii based web app 的访问点就是controller中的action,例如www.myappdomain.com/demo/showSomeInfo请求,就由DemoController的actionShowSomeInfo方法响应。
    • protected/data:由yiic生成的demo应用使用SQLite 数据库,数据文件testdrive.db存在本目录内,同时目录内还包含两个用于生成demo应用所需db的mysql、sqlite脚本,老常很熟悉这个。如果使用其他数据库,这个目录可不保留(前提是在config/main.php中指定了其他数据库的配置);
    • protected/extensions:包含所需的其他yii extensions扩展;
    • protected/messages:多语言支持的资源文件;
    • protected/migrations:空,不用;
    • protected/models:MVC 之 M,包含定义的Form类和DB映射ActiveRecord类;
    • protected/runtime:日志文件目录;
    • protected/test:yii内置了良好的 TDD、UnitTest工具,均配置在本目录下;
    • protected/views:MVC 之 V。其下子目录名对应同名的controller(例如site目录对应SiteController);唯一例外的是views\layouts目录,该目录下为系统视图,main.php 就是系统主页,其他视图的输出填入main.php的content部分。
  • 如果在系统开发中需要子模块,可按module组织包装该模块。放置于protected/modules目录下。一个目录对应一个module,其下目录结构和上述protected各子目录一致。当然,module目录下须有主文件myModule.php。
  • index.php:系统入口文件,加载yii框架后,使用指定配置文件配置一个 web application 对象,然后运行之。
  • index-test.php:与index.php 的 唯一区别就是加载了 test 配置,作为测试时的入口文件。

转载于:https://www.cnblogs.com/gumreal/archive/2013/03/05/2944214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值