Laravel 5.5 发布,ThinkSNS+ 升级及状况分享
升级场景
ThinkSNS+ 一直依赖,都是保留 Laravel 的 commit 记录的前提下,进行开发,为了追随 Laravel 的升级,我们在本地的仓库中新建了一个分支,如果 laravel 更新频繁,则每周一进行 merge 操作。然后再发送到ThinkSNS+的 GitHub仓库上(仓库地址 https://github.com/slimkit/thinksns-plus )。所以此次升级同样采用 merge 的方式升级。
前端构建
Laravel 一直都有提供脚手架,5.5 则提供了 Vue 和 React 两种切换,对于前端老说,其实脚手架很优秀,但是不是适合所有场景,就和之前文字分享如何构建兼容 Laravel mix 辅助函数的前端构建一样,本次升级直接抛弃了脚手架。
包自动发现
说到「包自动发现」这个功能,其实 ThinkSNS+ 开发出来的时间比 Laravel 5.5 开发出来的时间还要早,最开始的时候,我们是采用 Composer 插件的方式来管理包清单,然后 ThinkSNS+ 使用这份清单进行服务提供者的加载。而后因为拓展包中有可能还会使用 Laravel 的拓展包,所以抛弃了 composer 插件的方式,我们从核心入手,选择在 composer.json ,然后这种方式一直在内部开发使用持续了大概三个月之久,后来关注 Laravel 5.5 开发动态,发现 laravel 5.5 选择从 vendor/composer/installed.lock 入手去匹配清单,比我们之前开发的更好,所以直接仿照 写了一份从 vendor/composer/installed.lock 匹配清单的代码。总结,这次升级对于半年前就开始使用这个功能的我们来说,影响太小了,以至于这次升级中,我们舍弃了之前维护的包包清单管理代码。而 之前的所有拓展包均可以正常使用。
JSON 异常消息
这块升级后确实影响蛮大的,因为之前所有 API 接口都是按照 5.4 的一个结构进行返回,升级后,5.5 的结构出现。被移动端头子给怼惨了,这块不说了,下午还要写文档,移动端需要兼容两个格式。
其他影响
因为 ThinkSNS+ 在开发的时候我们就遵循一个原则,所有 Laravel 的东西不动,需要的东西进行拓展,所以此次升级出了上述说的 json 消息以外,几乎没有任何影响。

上面的图是 ThinkSNS+ 安装后的默认首页。



上图是网站的后台部分页面截图,网站后台采用的是 ES6 + Vue 的 SPA,后台管理接口没有采用 token 认证,而是采用传统的 Session。这样有助于安全。
当然,我们也在为 ThinkSNS+ 开发一个友好的文档网站(之前一直在 github 中写 markdown )不涉及后端,文档使用 markdown 维护,前端使用 ES6 + React + Material-UI 进行开发。看图:

ThinkSNS-Plus(ThinkSNS+),看完整的开发代码可以看仓库:
GitHub: https://github.com/slimkit/thinksns-plus(开源不易,求 Star )
Laravel 5.5 发布,ThinkSNS+ 升级及状况分享的更多相关文章
- RDIFramework.NET代码生成器全新V3.5版本发布-重大升级
发布说明 RDIFramework.NET代码生成器V3.5版本全新震撼推出,相比上次版本,本次发布新增与修改的内容如下: 1.全新增加了WinForm界面代码的生成,可直接生成常用的主界面(集新增. ...
- VSCode插件开发全攻略(十)打包、发布、升级
更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...
- linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码
1.本地发布脚本 publish.sh #!/bin/sh currentDay=`date +%Y%m%d` currentTime=`date +%Y%m%d%H%M%S` tomcat1=/da ...
- 微信 6.5.1 for iOS发布 可以在朋友圈分享相册中的视频
今天微信 6.5.1 for iOS发布了,最主要的一个功能是可以在朋友圈分享相册中的视频,卖转发朋友圈视频软件的家伙估计要哭了.微信这次更新,更有利于个人号的运营,个人号的价值将更高.先定一个小目标 ...
- iDoc「文档」功能强势升级!一键分享,即刻预览!(201903-1版本更新)
小摹很想知道小伙伴们在面对众多杂乱的文档时,都是如何管理起来的呢?iDoc的「文档」功能,很多小伙伴还没有用起来,甚至都没有注意到iDoc还有这样一个功能.今天小摹就给大家介绍一下iDoc的「文档」功 ...
- 分享我的“艺术品”:公共建筑能耗监测平台的GPRS通讯服务器的开发方法分享
在这个文章里面我将用一个实际的案例来分享如何来构建一个能够接受3000+个连接的GPRS通讯服务器软件,这个软件被我认为是一个艺术品,实现周期为1.5个月,文章很长,有兴趣的同志慢慢看.在这里,我将分 ...
- 公共建筑能耗监测平台的GPRS通讯服务器的开发方法分享
公共建筑能耗监测平台的GPRS通讯服务器的开发方法分享 在这个文章里面我将用一个实际的案例来分享如何来构建一个能够接受3000+个连接的GPRS通讯服务器软件,这个软件被我认为是一个艺术品,实现周期为 ...
- 能耗监测平台GPRS通讯服务器的架构设计
在这个文章里面我将用一个实际的案例来分享如何来构建一个能够接受3000+个连接的GPRS通讯服务器软件.在这里,我将分享GPRS通讯服务器设计过程中面临的问题,分享通讯协议的设计,分享基于异步事件的设 ...
- 黄聪:C#Winform程序如何发布并自动升级(图解)
有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...
随机推荐
- ==和Equal()
1.a==null与 null==a null放在前面就是为了避免变量为空时 引了空指针异常 如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法 ...
- mybatis自定义之优先从classes目录加载,加载之后遇到相同的类定义时不再加载
如果mybatis中包含了两个相同定义的mapper,启动时出现下列异常: Caused by: java.lang.IllegalArgumentException: Result Maps col ...
- ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 4, 'final', 0)
(flask-demo) ➜ flask-demo git:(master) ✗ pip install mysqlclient==1.2.5 DEPRECATION: Python 2.7 will ...
- html css 浮层 侧边栏
2019-7-1 16:02:25 星期一 实现的效果是点击, 然后从左侧滑出, 再点击, 就滑进去 <!DOCTYPE HTML> <html lang="en" ...
- Tensorflow不能使用GPU的解决办法
转载:https://blog.csdn.net/kudou1994/article/details/86735451 服务器在训练模型,另一边我在瞎胡乱搞不晓得咋个搞的,就不能使用GPU了.pyth ...
- Sigmoid函数的替代:overflow encountered in exp in computing the logistic function
RuntimeWarning: overflow encountered in exp in computing the logistic function 以下是sigmoid函数的标准写法,但是如 ...
- Xcode7.2真机测试问题"The account 'appleID ' has no team with ID ‘’
在Xcode7(测试版)提出免费真机测试的时候,我立刻在网上搜寻测试步骤,很简单,按照步骤走就可以. 但在7.2以后,突然我的iPhone不能真调了!提示"The account 'app ...
- 转 java 8 lamba stream
一直在写中间件相关的代码,提供SDK给业务方使用,但很多业务方还一直停留在1.7版本,迟迟不升级,为了兼容性,不敢在代码中使用Java8的一些新特性,比如Stream之类的,虽然不能用,但还是要学一下 ...
- Asp Core部署到IIS服务器
之前有文章写了.Asp Core Kestrel服务器可以独立运行在linux下,也可以部署到Docker上面通过容器管理,当然也可以直接部署到IIS中 一:安装环境 1)首先需要在服务器安装对应环境 ...
- 微信JS从1.0.0升级到1.1.2的一个坑
因为1.0.0不支持电脑端日期Picker滚动,升级成了1.1.2,结果发现日期选择不起作用了经过跟踪发现 通过控制台查看 resut[1].toString()居然是number类型,修改代码为() ...