框架手册
一:环境配置:
Nginx:
Php5.4以上
Mysql
Mongodb
Redis
1.1 php
配置注意:php需要安装mongo扩展,redis扩展,imap扩展,mysql扩展
extension=mongo.so
extension=imap.so
extension=pdo_mysql.so
extension=redis.so
Mongo命令的符号更改为问号:mongo.cmd=?
memory_limit = 256M 缓存的最小设置。
Php apc缓存的安装,用来缓存php的文件,因为有大量的文件加载,使用缓存后,会大大提升php的速度。
1.2 mongodb
Mongodb安装完成后,对mongdb的设置参考:
http://blog.csdn.net/terry_water/article/details/44487757
框架中Mongodb的配置文件为:common\config\main-local.php
1.3 redis
对于redis,系统已经按照默认的端口设置好:6379,无需配置
1.4 mysql
Mysql的配置文件:common\config\main-local.php
二:系统结构:
本系统分为三部分:frontend,backend,console
分别为前端,后台,控制台(命令脚本)
基础配置为common,上面的三个部分的配置继承common
1.common配置
1.1 common MVC基础类:
\common\block, \common\models, \common\controllers,
注:view不需要处理数据,因此没有基础类
Block是一个中间处理数据层,models是一个数据抽象层,controllers是控制器,处理数据在block层,block相当于肌肉,灵感来自magento的设计,这里处理从数据库过来的数据处理,以及一些其他处理,最终结果返回controller,然后传递给view。
1.2 系统重写类:
\common\web\Request.php, (重写:\yii\web\Request)
\common\models\core\mongodb\CMconnection.php
(重写yii\mongodb\Connection)
\common\models\core\mongodb\CMdatabase.php
(重写yii\mongodb\Database)
重写这些yii2基础类,是为了本框架的需要,其中requese重写,主要针对url重写
另外两个mongo的是为了本框架的对mongodb的字段类型转换而进行了方法的添加和覆盖。
1.3 系统核心功能类
\common\models\core\* (子文件,非子文件夹下面的文件)
里面包括cookie,session,email,image,cart,order,roles,store,translate,url,payment,message,language,mongodb,request,shipping,cache,customer,currency,country,config,address,Help,log,PAYPAL-NVP,store,等一些独立性高,穿插性强的功能单位的独立处理,使用静态方法调用的方式,
在使用前通过use引入文件,然后通过静态方法的方式调用
1.4 mongdob数据模型类
由于mongodb没有数据格式,因此在前台传入的数据,需要在传入mongodb的时候做格式转换,因此在mongodb中建立一个collection,需要做类型配置,文件文件的地址:
common\mongo\*
Example: \common\mongo\catalog_product.php
框架中Mongodb的操作步骤参考:
http://blog.csdn.net/terry_water/article/details/44489521
1.5 mysql active_record 模型类:
\common\models\* (不包含core文件夹)
譬如:
Use common\models\checkout\Salesorder;
使用后,通过 Saleorder:: 使用
常用语法参考地址:http://blog.csdn.net/terry_water/article/details/44489041
1.6 \common\createdb
里面包含了myslql创建数据库的sql文件,这里相当于doc,非必要,但是为了维护,把创建表的sql写这里,由于mysql的表少,因此没有做同步更新。
1.7 \common\mail
此处是mail模板的地方,里面包含各个语言的mail的模板
1.8 \common\config
里面是全站的基础配置,前台,后台,common的配置都需要从这里共用,当然,frontend,backend,common也有自己的私有配置。
Bootstrap.php 这个文件设置的是强制加载的部分,目前这类里面只有
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console');
因此可以在这里设置yii的别名,如果想添加其他,可以在这里添加。
Main.php
对时区设置
模块:url,cache,redis,i18n(语言),mailer(发送邮件机制),log等
Main-local.php
模块:mongodb,mysql的配置
Params.php
一些常用参数的配置
Params-local.php
后台和图片地址的配置
?图片地址为什么不用当前域名生成,而在这里定义?
因为图片可以用到单独的图片服务器,域名独立出来,因为单独配置
\common\config\custom\*
里面是一些系统的配置,通过名字进行区分。
2.Frontend部分
网站的前段:包括首页,分类,产品,购物车,支付,客户中心等页面
Block,controller,models基类都是从common集成而来
Config包含common的config
3.backend部分
后台的模板采用的是:j-ui框架
这部分主要是对数据的编辑,主要有:
产品数据,分类数据,产品评论,产品搜索,tag,sitemap,订单,客户信息,cms,博客,系统配置等。
4.Console 控制台
这个部分主要是为了跑脚本,脚本的控制通过shell
\shell\read.txt,脚本都在这个文件做了注释,譬如:
Sh processFullTextProductSearch.sh
打开这个sh文件
variable=`../yii processfulltextproductsearch/getpagetotal`
echo "There are $variable pages to process"
echo "##############ALL BEGINING###############";
for (( i=1; i<=$variable; i++ ))
do
# /usr/bin/php -f emailSendCart.php process $i
../yii processfulltextproductsearch/index $i
echo "Page $i done"
done
../yii processfulltextproductsearch/index $i
代码执行
\console\controllers\ProcessfulltextproductsearchController.php
文件里面的方法:index
public function actionIndex($pageNum = 1){ }
$pageNum接收传递的$i 值
通过use引入文件就可以进行逻辑处理了。