项目架构

通信::

各个模块的通信,是通过  通信API模块实现。  XApi

命名:

Session  名字的设置规则  模块名_用途名,譬如:用户购物车的个数。

文件结构:

Common

Config

main-local.php

params-local.php

Myapp

/frontend

 

/Common

/blocks  #底层blocks

/CBlockbase.php

/controller # 底层controller

/CController.php

/config # 底层config

/bootstrap.php

/main.php

/params.php

/models

/helper

/所有的模型初始定义

/XTM   #所有的常用类方法,譬如URL SESSION  COOKIE  IMAGE CONFIG EXCEL 

/lib #加载的第三方类。

/Backend

/console

Frontend详细

/myapp/Frontend/

   /code

/模块包名

/模块名1

/Module.php #模块的入口文件

/controllers #模块的controller文件 路径

/block #模块的块文件 路径

/etc #模块的配置文件 路径

/models #模块的models路径

/helper # 非数据库操作类存在路径

/event # 模块内部的事件 路径

/模块名2

/模块名3

/通信模块

/views

/default(模板名)

/模块名

/controller名称.php

/action名称.php  # 譬如:customer/account/login 对应的是 views/default/customer/account/login.php

/dmobile(模板名)

 

/lib

/etc

/modules

Erp_Customer.php

Erp_Product.php

/mongo

/Mongo1.php

/Mongo2.php

/Mongo3.php

/local.php

/language

/de_DE

/companie.php

/en_US

/es_ES

/fr_FR

/it_IT

/nl_NL

/mail

/de

/accout

/forgot.php

/register.php

/contacts

/index.php

/order

/create_guest_success.php

/create_success.php

/es

/fr

/en

/it

/nl

 

frontend/web

/index.php  #进行各种初始化,要把模板给对应好。

/skin

/defaut

/css

/styles.css

/styles2.css

/fonts

/icomoon.svg

/icomoon.eot

/icomoon.ttf

/icomoon.woff

/image

/home

/xxx.jpg

/product

/xxx.jpg

/xxx.jpg

/xxx.jpg

/yyy.jpg

 

/js

/custom.js

/mobile

 

/js

/jquery.js

/myapp/Backend # 后台,这里不做叙述

/myapp/Console # 控制台,

1.需求调研

3.模块部署(对应的人员只书写底层方法内的代码的填充。或者一部分前台的代码。)

a) 需要模块划分

b) 模块功能点详细划分,以及使用的其他模块的方法,通过通信api模块调取

c) 功能点详细描述,各个功能点的执行,带来的结果的代码级别的描述。

d) 功能点的实现,在其同名的文件夹中书写详细,譬如

Cart.php    #实现的是模块内公开方法

Cart/items.php  # 实现的是中间层的实现代码

Cart/total.php   # 实现的是中间层的实现代码

e) 设计各个模块对应的数据库

f) 安排具体的人,去实现函数里面的功能点

g) 完成后,找到实现功能的人,细致核对功能点的实现情况。并查看里面的代码,进行合理的部署和修改。

 

4.数据库的设计。

5.设计一个基础的前端框架,供大家使用

Herd , Herder , Left , Right , Content , Footer几块

Head:网站的Head 一般都是一样,用一个文件书写。

Herder:网站的Header一般都是一样的

Footer:网站的Footer一般是一样的

BreadCrumbs:一般由各个页面传入数组[‘label’ => ‘url’,‘label’ => ‘url’,‘label’ => ‘url’],然后生成

Left, Content,Right 这个是网站的结构,一般是有当前页面的编辑人员来书写

除了Left Content Right,上面的弄完就完成了一个基础的前端框架。

注:上面的模块,需要的数据,都是从 通信模块 的方法中获取,这个方法的数据是有对应模块来实现,也就是说通信模块相当于api,如果对应模块还没有实现这个方法,可以在通信模块返回一个常量或者一段html,不耽误前端的数据显示,当对应模块实现了逻辑,把结果放到通信模块的对应方法中,做返回就可以了。

 

6.开发人员工作:部署到这里,可以让程序员先去开始做对应的模块,通过一个简单的controller去测试自己写的功能

7.

4.前端设计

前端设计出来初始版本,供大家套用,可以用之前的模板先用着,以后再做改变

前期的开发,先不过多的依赖前端设计的进程,先用一个大致的模板套用

5.前端架构

 

 

 

 

 

B2C模块:

1.用户模块

用户的注册

安全属性:用户email  password  password_repeat     captcha 

同意条款 仅仅是一个验证,无字段

提交成功后,密码加密存放数据库,

用户登录

用户的登录

安全属性:email,密码 ,是否cookie登录

验证成功后,用户为登录状态

session中 保存用户的id, 

更新购物车信息:将未登录的购物车中的产品数据,和客户账户原来有的购物车数据合并,合并到客户账号对应的条目,然后,当前的session对应购物车id做指向到账号对应的id  重置session 中的购物车信息。

XApi\Cart::updateCartInfoAfterLogin($customer_id);

XApi\Cart::getCartInfoByCustomer($customer_id);获取购物车中产品个数,总金额

登录成功后,跳转到账号中心

提供方法:XApi\User::isGuest();  

$session::get();   

用户的google账号登录   fb账号登录

点击按钮后,跳转到第三方验证,验证成功后,返回网站,获取到他的googlefb邮箱,查看用户表中有无此邮箱,如果有,用户更改成登录状态,如果没有,用这个邮箱注册一个账户,密码随机生成六位,发送到客户邮箱,此账号变成登录状态

完成后 XApi\Cart::updateCartInfoAfterLogin($customer_id);

用户中心控制面板

用户中心查看欢迎语,账号信息 ,默认货运地址,最近订单等

货运地址是从货运地址表中查找,通过customer_id  和 is_default两个字段

最近订单 通过方法:Order::getRecentOrderByCustomerId($customer_id)返回最近的五个订单.

用户信息修改

用户可以修改自己的first name   last name   密码等

用户的收货地址信息修改

查看收货地址列表,增加收货地址,修改收货地址。收货地址删除,设置默认

用户订单

查看用户订单列表,

查看总个数:Order::getCustomerOrderCount($customer_id),

查看列表Order::getCustomerOrderList($customer_id,$pageNum,$numPerPage,$sort);

查看详细 Order::getCustomerOrderInfo($customer_id,$order_id);

Reorder:将order的信息,累加到购物车模块中

Order::reorderAddToCart($customer_id,$order_id);

需要使用到XApi\Cart::addToCart([‘sku’,’$items’,’custom_option’]);

用户rewrite

XApi\Productreview::getCustomerProductReviewList();

用户收藏

左侧菜单

用户退出 

清除用户session

清除购物车信息:XApi\Cart::destoryCartInfoAfterLogout($customer_id);

 

2.分类模块  菜单  面包屑

3.产品模块

4.Cms page 模块 cms static block模块

5.Url rewrite模块

6.购物车模块

7.支付模块

8.产品评论模块

9.翻译模块

10.邮件模块

11.前端

12.后台配置模块

13.内存管理模块

14.脚本处理

15.Restful接口

16模块间通信API

 

17.公共模块方法

Session    

Session::get($key)    #获取session

Session::set($key,$value)  #设置session 

Session::remove($key) # 清除session

Url

Url::getCurrentUrl();  # 得到当前的完整url

Url::getCurrentUrlKey(); # 得到当前的url key  也就是 xx/xx/xx

Url::getCurrentUrlNoParam();  # 得到当前的无参数url

 

Url::getUrl(‘xx/xx/xx’,[‘filter’=>’color’]); # 通过url path  和参数

Url::getBaseUrl();  # 得到网站的base url

Url::getSkinUrl(); # 得到skin的基层url,譬如 http://www.xx.com/skin/default

Url::getJsUrl(); # 得到js的基层url

 

Url::getBaseDir();  #依次上面的,得到的是目录地址

Url::getSkinDir();

Url::getJsDir();

Url::getSitemapDir();  # 得到sitemapdir

Url::getSitemapUrl();   # 得到sitemapurl

Url::getMediaBaseDir();  # 得到mediabase dir

Url::getMediaBaseUrl(); # 得到mediabase url

Url::getMediaProductUrlByImagePath(); # 通过product image path得到图片的url 

Url::getMediaCategoryUrlByImagePath(); # 通过category image path得到图片的url 

Url::getDomain(); # 得到当前的domain

Url::redirect(); # 跳转到其他的页面

Excel  # excel的导入导入

File 

Translate   Translate::__($text,$arr = array())  preg_replace('/%s/',$arr);

Request  

Request::get()   

Request::post()

Request::param()   # get 数据优先查找,然后查找post

Request::getCsrfName()   

Request::getCsrfValue()

Request::getCsrfInputHtml()

 

Cookie 

Image

Config  

Config::param();  # 获取配置项

Config::isMobileTheme();

Country  # 国家的一些操作

Currency  # 货币的转换操作

Date # 常用的时间操作 

Toolbar  # 分页Toolbar

Message # 消息提示

你可能感兴趣的:(项目架构)