codecamp
Fecshop 如何升级

fecshop 升级

当fecshop代码更新后可以通过composer更新

1.原理

入口包部分,github地址为: https://github.com/fancyecommerce/yii2_fecshop_app_advanced 也就是安装fecshop后,除了vendor以外的所有文件,都是入口包文件, 打开根目录下面的composer.json文件可以看到如下内容:

"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": ">=2.0.6",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "yiisoft/yii2-apidoc": "~2.0.0",
    "fancyecommerce/fecshop": ">=1.1.2.9"

   
},

通过上面可以看到 fecshop 和 yii2 都是一个composer包,通过包依赖的方式 加载过来。

2.升级

2.1 yii2_fecshop_app_advanced包:

通过上面,我们了解了原理,yii2_fecshop_app_advanced 入口包是无法升级的, 因为很多的本地化配置都在里面,升级将导致全体被覆盖。 幸运的是,这个包作为入口部分,很少改动,可以在 https://github.com/fancyecommerce/yii2_fecshop_app_advanced/commits/master 查看各次提交对应的修改,然后手动复制到相应文件即可。

2.2 核心包以及第三方包升级:

打开根目录下面的composer.json配置文件, 找到下面的代码

"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": ">=2.0.6",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "yiisoft/yii2-apidoc": "~2.0.0",
    "fancyecommerce/fecshop": ">=1.1.2.9"

   
},

更改相应的版本号,然后在根目录下面执行composer update 即可。

譬如我想升级fecshop,我访问 https://github.com/fancyecommerce/yii2_fecshop/releases, 查看最新的版本号,和当前文件的版本号是否一致,如果不一致, 将"fancyecommerce/fecshop": ">=1.1.2.9" 这行中的1.1.2.9 改成最新的 ,当然,yii2框架也是这个原理,修改下版本号。

然后在根目录下面执行composer update即可完成升级。

开发注意: vendor下面的文件不要做改动,如果修改功能,需要按照文档的说明 在二开路径进行覆盖重写,如果您修改了vendor下面的内容,那么,下次升级的时候, 将会把您改动的内容全部覆盖掉,您写的代码将全部清空。这个需要切记!

Fecshop 初始配置
Fecshop 架构简叙
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fecshop Api

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }