Yii 是一个高性能的,适用于开发WEB2.0应用的PHP框架,快速、安全、专业的PHP框架。
Yii 自带了丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。
Yii2官方提供免费的高级模板框架实例代码,但是功能比较简单。yii2高级模板基础上开发了一个开源商城项目,免费开源,可以用于二次开发或学习使用,看大家是否能用得上。
前台演示: test.shopwind.net
后台演示: admin.test.shopwind.net (账号:admin,密码:123456)
源码下载地址:gitee.com/shopwind/yii2-shopwind
项目演示图:
目录结构
├─shopwind------------------------------------------应用目录
│ ├─apiserver-------------------------------------API接口服务模块
│ │ ├─config------------------------------------配置文件
│ │ ├─controllers-------------------------------模块控制器
│ │ ├─languages---------------------------------语言包
│ │ ├─library-----------------------------------模块类库
│ │ │ ├─Formatter.php--------------------------数据格式化类
│ │ │ ├─Respond.php----------------------------数据输入输出类
│ │ │ └─Signature.php--------------------------数据验证签名类
│ │ ├─models------------------------------------业务层
│ │ ├─runtime-----------------------------------应用运行缓存文件
│ │ └─web---------------------------------------Web部署目录(对外访问目录)
│ │ └─index.php------------------------------API入口文件
│ ├─backend---------------------------------------后台模块
│ │ ├─config------------------------------------配置文件
│ │ ├─controllers-------------------------------模块控制器
│ │ ├─languages---------------------------------语言包
│ │ ├─library-----------------------------------模块类库
│ │ ├─models------------------------------------业务层
│ │ ├─runtime-----------------------------------应用运行缓存文件
│ │ └─web---------------------------------------Web部署目录(对外访问目录)
│ │ └─assets--------------------------------静态资源发布目录
│ │ └─templates-----------------------------模板(视图)文件目录
│ │ └─index.php------------------------------后台入口文件
│ ├─common----------------------------------------公共文件目录
│ │ ├─actions-----------------------------------公共动作目录
│ │ ├─bussiness---------------------------------业务逻辑层
│ │ ├─components--------------------------------公共组件类库
│ │ ├─config------------------------------------全局配置文件
│ │ ├─controllers-------------------------------控制器父类
│ │ ├─install-----------------------------------安装程序类
│ │ ├─library-----------------------------------公共逻辑层
│ │ ├─mail--------------------------------------邮件发送类
│ │ ├─models------------------------------------数据库模型类
│ │ ├─plugins-----------------------------------公共插件类库
│ │ │ ├─connect-------------------------------第三方登录插件目录
│ │ │ │ ├─qq--------------------------------qq登录插件
│ │ │ │ ├─alipay----------------------------支付宝登录插件
│ │ │ │ ├─weixin----------------------------微信登录插件
│ │ │ │ └─xwb-------------------------------新浪微博登录插件
│ │ │ ├─express-------------------------------快递跟踪插件目录
│ │ │ ├─oss-----------------------------------对象存储插件目录
│ │ │ ├─payment-------------------------------支付插件目录
│ │ │ │ ├─alipay----------------------------支付宝PC支付插件
│ │ │ │ ├─alipay_app------------------------支付宝APP支付插件
│ │ │ │ ├─alipay_wap------------------------支付宝手机支付插件
│ │ │ │ ├─wxpay-----------------------------微信公众号支付插件
│ │ │ │ ├─wxapppay--------------------------微信APP支付插件
│ │ │ │ ├─wxnativepay-----------------------微信扫码支付插件
│ │ │ │ ├─wxmppay---------------------------微信小程序支付插件
│ │ │ │ ├─wxh5pay---------------------------微信H5端支付插件
│ │ │ │ ├─unionpay--------------------------中国银联支付插件
│ │ │ │ └─deposit---------------------------站内余额支付插件
│ │ │ ├─sms-----------------------------------短信插件目录
│ │ │ └─BasePlugin.php-------------------------插件基类
│ │ └─widgets-----------------------------------小部件类库
│ ├─console---------------------------------------控制台目录
│ │ ├─config------------------------------------配置文件
│ │ └─controllers-------------------------------模块控制器
│ ├─frontend--------------------------------------前台(PC)模块
│ │ ├─config------------------------------------配置文件
│ │ ├─controllers-------------------------------模块控制器
│ │ ├─languages---------------------------------语言包
│ │ ├─library-----------------------------------模块类库
│ │ ├─models------------------------------------业务层
│ │ ├─resource----------------------------------资源目录
│ │ ├─runtime-----------------------------------应用运行缓存文件
│ │ ├─widgets-----------------------------------PC端小挂件目录
│ │ └─web---------------------------------------Web部署目录(对外访问目录)
│ │ └─assets--------------------------------静态资源发布目录
│ │ └─install-------------------------------程序安装目录(入口)
│ │ └─templates-----------------------------模板(视图)文件目录
│ │ └─index.php------------------------------前台(PC)入口文件
│ ├─mobile----------------------------------------前台H5/WAP模块
│ │ ├─config------------------------------------配置文件
│ │ ├─controllers-------------------------------模块控制器
│ │ ├─languages---------------------------------语言包
│ │ ├─models------------------------------------业务层
│ │ ├─runtime-----------------------------------应用运行缓存文件
│ │ ├─widgets-----------------------------------H5端小挂件目录
│ │ └─web---------------------------------------Web部署目录(对外访问目录)
│ │ └─assets--------------------------------静态资源发布目录
│ │ └─templates-----------------------------模板(视图)文件目录
│ │ └─index.php------------------------------前台(H5)入口文件
├─composer.json--------------------------------------Composer配置文件
└─vendor-------------------------------------------第三方类库目录
目录解读
1、根目录下的目录如:apiserverfrontendbackendmobile 我们称之为应用或站点,每个应用(站点)都包含自己的一套MVC结构,可以解析不同的域名来访问。但请不要把域名直接解析到应用目录,而应该是解析到应用目录下的web目录,只有该目录才是允许对外访问的,以确保应用(站点)的安全。
2、根目录下的目录common是公共文件目录,所有应用(站点)的公共文件都可以放在此目录,方便重复调用。
3、每个应用(站点)下的配置文件,即config目录,是应用的配置文件,主要是配置:路由、控制器路径、视图、Session、组件等,并非数据库连接配置文件,我们的数据库配置文件是:@shopwind/frontend/web/data/config.php,所有应用都是 公用该配置文件,即便是多数据库,也是写在该配置文件中。
入口文件
入口文件也叫入口脚本,入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。 终端用户的请求通过入口脚本实例化应用并将请求转发到应用。 Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php。以下例子就是各个Web应用的入口文件路径:
前台PC端入口文件
@shopwind/frontend/web/index.php
后台入口文件
@shopwind/backend/web/index.php