- 授权协议: BSD
- 开发语言: PHP JavaScript
- 操作系统: 跨平台
- 软件首页: http://www.fecshop.com/
- 软件文档: http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-README.html
软件介绍
Fecshop 全称为 Fancy ECommerce Shop,是基于 PHP Yii2 框架开发的一款优秀的开源电商系统,遵循 BSD-3-Clause 协议,Fecshop 支持多语言,多货币,架构上支持 PC,手机 Web,手机 APP,和 ERP 对接等入口,您可以免费快速的定制和部署属于您的电商系统。
Fecshop 基于 Yii2 的高效框架,在此基础上进一步封装,加入了 service 层和 block 层,数据库采用了 NoSQL 和 MySQL 结合的方式,关系型表放到 MySQL 中,譬如优惠券、购物车、订单等,非关系型数据表(非关系型代表不会出现多表强事务类型操作) 放到 MongoDB 中,缓存用 Redis,搜索目前用的是 MongoDB 的 FullTextSearch 功能,支持一些主流语言的分词与搜索,不过目前中文搜索不支持分词,后期会扩展 ElasticSearch 来进行搜索(ElasticSearch 有中文插件,安装后支持中文分词)。
总之,Fecshop 目前的定位是为了让程序员们有一个方便学习,扩展,开发的电商框架系统。
在线演示:https://fecshop.appfront.fancyecommerce.com/
Fecshop 作为一款可以持续性发展的商城系统,在框架层面有以下特性:
由于商城系统的复杂性,原始的框架 MVC 结构,显得有点力不从心,Fecshop 框架加入了 Block 层,Controller 层只负责调度,Model 层只负责数据库映射,中间的处理逻辑由 Block 来完成,View 层负责显示,这样各司其职,以免造成 Controller 文件过于庞大。
加入独立功能块,有点类似 Yii2 的 Widget,目的是为了让一些侧栏公用块可以通过配置的方式 添加,同时,还可以具有设置缓存的功能,譬如侧栏的产品浏览记录,newsletter 等独立显示块可能在很多页面用到,通过独立功能块可以配置方便的载入。
在 Model 层的上层加入服务层 Services,这样,Controller,Block,View 层,在原则上不能直接调用 Model,必须通过 Services 层以及子 Services 层,然后 Services 访问各个 Model,组织数据,事务处理等操作,将数据结果返回给上层,这种设计可以方便以后业务发展后,进而根据业务特点进行重构,或者以后如果出现新技术,新方式,都重构成自己想要的样子。譬如,将某个底层由 MySQL 换成 MongoDB,或者为了应付高并发读写并且多事务性的功能部分,进行分库分表的设计方式。
Fecshop 多模板系统,Fecshop 设置了多个模板路径,各个模板路径下的文件被加载的优先级不同,其中,Fecshop 的模板路径下的文件最全面,但是优先级最低,第三方模板路径优先级其次,用户本地模板路径优先级最高,用户可以通过复制相应路径下的 view 或者 js, css 文件到本地模板路径,存在于高优先级模板路径的文件会被优先加载,这样用户可以通过多模板系统的原理进行模板的制作,同时,不影响 Fecshop 模板的升级,如果 Fecshop view 文件升级后被修改,那么用户可以比对本地模板文件与升级模板文件的代码的不同,复制更改的代码到本地模板路径即可。第三方的模板路径的优先级介于本地模板路径和 Fecshop 模板路径之间。
重写机制,Fecshop 的功能基本都可以被用户重写,包括 servies 层,Modules, Controller,Block,Views,View Layout 以及 JS, CSS, Img 等,都可以被用户重写,其中 js, CSS, Img,Views,View Layout 是通过多模板 路径优先级来实现的,其他的是通过配置文件的覆盖更改来实现重写,这样,用户就可以很方便重构 Fecshop 或者第三方的功能和模板。
升级最小化干扰,Fecshop 的核心文件放到 vendor/fancyecommerce/fecshop 路径下面,和第三方扩展,用户二次开发路径完全隔离开,Fecshop 可以通过 composer 进行核心功能的升级,用户只需要通过 composer 升级即可。
快速高效,Fecshop Servises 遵循 Yii2 的懒加载方式,只初始化使用到的组件服务,缓存方面有整页缓存,block 部分缓存,动态数据 ajax 加载等方式。
Fecshop 多入口模式,分为 appadmin(后台),appfront(PC前端),apphtml5(手机web),appserver(手机app服务),appapi(erp,或者其他接口对接),不同的业务,不同的设备,进入不同的入口,各个入口共用服务层 services,但是 modules 部分独立,这样相互干扰最小,可以相互独立开发。
后台封装化,fec_admin 扩展可以快速的实现增删改查类型的表单列表,方便用户快速的做增删改查。
鉴于以上特点,您可以下载安装 Fecshop,然后更改 Fecshop 的模板和功能,扩展自己想要的功能,或者安装第三方开发好了的扩展或者模板,来快速的组建起来您的网站。
Learn Python the Hard Way
Zed Shaw / Example Product Manufacturer / 2011
This is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up t......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!
