欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

fecmall

程序员文章站 2022-07-08 16:02:03
...
  1. 基于yii2框架开发的电商系统,扩展性强,安全性高,框架层面应对高并发部署, 适合用户搭建属于自己的小型,中型电商系统。
  2. 开源电商系统,遵循BSD-3-Clause开源协议。
  3. Controller层只负责调度, Model只负责数据库映射,中间的处理逻辑由block来完成,View层 负责显示,这样各司其职, 以免造成controller文件过于庞大。
  4. 加入独立功能块,有点类似Yii2的Widget,目的是为了让一些侧栏公用块 可以通过配置的方式 添加,同时,还可以具有设置缓存的功能,譬如侧栏的产品浏览记录, newsletter等独立显示块可能在很多 页面用到,通过独立功能块可以配置方便的载入。
  5. 在Model层的上层加入服务层Services,这样,Controller,Block,View 层,在原则上 不能直接调用model,必须通过Services层以及子Services层,然后Services访问各个 model,组织数据,事务处理等操作,将数据结果返回给上层,这种设计可以方便以后业务 发展后,进而根据业务特点进行重构,或者以后如果出现新技术,新方式, 都重构成自己想要的样子,譬如, 将某个底层由mysql换成mongodb,或者为了应付高并发读写并且多事务性的功能部分, 进行分库分表的设计方式。
  6. Fecshop多模板系统,Fecshop设置了多个模板路径,各个模板路径下的文件被加载 的优先级不同,其中,Fecshop的模板路径下的文件最全面,但是优先级最低, ,第三方模板路径优先级其次,用户本地模板路径优先级最高, 用户可以通过 复制相应路径下的view或者js,css文件到本地模板路径,存在于高优先级 模板路径的文件会被优先加载,这样用户可以通过多模板系统的原理进行模板的 制作,同时,不影响Fecshop模板的升级,如果Fecshop view文件升级后被修改, 那么用户可以比对本地模板文件与升级模板文件的代码的不同, 复制更改的代码到本地模板路径 即可。第三方的模板路径的优先级介于本地模板路径和Fecshop 模板路径之间。
  7. 重写机制,Fecshop的功能基本都可以被用户重写,包括servies层,Modules, Controller,Block,Views,View Layout, 以及Js Css Img等,都可以被用户重写,其中 Js,Css,Img,Views,View Layout 是通过多模板 路径优先级来实现的,其他的是通过配置文件的覆盖更改来实现重写,这样,用户 就可以很方便重构Fecshop或者第三方的功能和模板。
  8. 升级最小化干扰,Fecshop的核心文件是放到vendor/fancyecommerce/fecshop 路径下面,和第三方扩展,用户二次开发路径完全隔离开, Fecshop可以通过composer进行核心功能的升级,用户只需要通过composer升级 即可。
  9. 快速高效,Fecshop Servises遵循Yii2的懒加载方式,只初始化使用到的组件服务, 缓存方面有整页缓存,block部分缓存,动态数据ajax加载等方式,让您的网站快速响应。
  10. Fecshop 多入口模式,分为 appadmin(后台), appfront(PC前端),apphtml5(手机web), appserver(手机app服务),appapi(erp,或者其他接口对接), 不同的业务,不同的设备,进入不同的入口,各个入口共用服务层services, 但是modules部分独立,这样相互干扰最小,可以相互独立开发。
  11. 后台封装化,fec_admin扩展可以快速的实现增删改查类型的表单列表, 方便用户快速的做增删改查。
  12. 如果是您公司内部的项目,或者你的朋友等一些项目, 您基于fecmall做相应的商城,是免费授权的, 如果您是建站公司,将fecmall进行二次开发,然后包装成了新的建站产品,然后重新 命名(譬如命名:xxxShop),进行商业宣传完全自研等等一些伪造话语, 对于这种不良商家的这种行为是不允许的,基于fecmall的新产品,必须以fecmall开头命名
  13. 通过composer安装。composer create-project fancyecommerce/fecshop-app-advanced fecmall 2.3.0
  14. 准备域名。
Pc端 > appfront.fecshoptest.com > $root/appfront/web/

后台 > appadmin.fecshoptest.com > $root/appadmin/web/

图片 > img.fecshoptest.com > $root/appimage/common/

H5端 > apphtml5.fecshoptest.com > $root/apphtml5/web/

移动Api端 > appserver.fecshoptest.com > $root/appserver/web/

第三方数据对接Api端 > appapi.fecshoptest.com > $root/appapi/web/
  1. init命令初始化
    在fecshop根目录执行init命令,进行初始化

window:运行init.bat

linux:运行 ./init

此命令会进行一些文件复制,一些设置文件权限等,增强安全性。

  1. 创建Mysql数据库fecmall
  2. 界面安装
  3. 总览
Fecmall在MVC三层架构上,加入了block层和services层,方便扩展和后期重构底层

入口文件:终端用户能直接访问的 PHP 脚本, 负责启动一个请求处理周期,譬如:@app/web/index.php

系统初始化bootstrap:指的是系统的初始化过程中执行的部分,譬如store语言,货币等, 都是在初始化过程中执行。

模块:yii2框架中的模块部分

controller:控制器,一个controller里面有多个action方法,每个action请求,一般对应 一个block,用来处理该action下面的逻辑

block: 逻辑处理层,负责处request发送的数据,调用相应的services方法,然后 进行处理返回最终数据,一般一个controller中的一个action,对应一个block文件

services:服务层,该层为fecmall的核心部分,很多的逻辑都是在此处实现, 对于某个功能,譬如购物车部分,您可以实现多个services,然后通过配置的方式进行切换, 譬如官方实现的redis cart,可以替代mysql cart,因此该层的加入,让您可以方便的重构底层, 根据业务的需求,开发不同的services,甚至使用远程的api封装成services, 让底层的重构更加容易,同时该结构扩展性强,应用市场可以开发不同的services应用插件, 让用户可以方便的安装应用直接切换其他的services

另外该层为共用层,pc,wap,vue,微信小程序,都公用services层

fecmall大多数的逻辑实现以及业务处理,都是在services层进行的。

models:数据库层

view:视图渲染层view

fecmall

  1. FecShop核心包文件结构
    打开vendor/fancyecommerce/fecshop ,这里就是fecshop的核心代码包。
    @fecshop/app里面 是各个入口系统的文件代码,包含 @fecshop/app/appadmin,@fecshop/app/appfront等。

  2. Yii2是多文件配置结构,将多个配置文件分散到各个路径下, 在初始化的时候最终合成一个配置数组,这种方式比较灵活,后面的数组和覆盖前面的数组 配置,这种方式非常适合重写某些组件,服务等.

相关标签: php 电子商务

推荐阅读