什么是 ThinkSNS+
09 年,由北京的团队开发了 ThinkSNS 涉足社交开源行业。这么多年累计不少客户。2014-2016,两年都在维护和开发之前基于 TP 的 ThinkSNS , 慢慢的引入新开发概念。终于,在2016年下半年,我们决定重写这个程序,抛弃之前的每一行代码。框架上,开发人员一致性的选择了 Laravel ,并取了一个看起来像手机厂商给手机命名的名字----ThinkSNS Plus 没错就是 Plus 也就是符号 + 因为我们更希望侧重移动端,这就是 ThinkSNS+。
如何保持和 Laravel 的升级
起初没想过框架升级的问题,后来思考了一个问题,最后会不会像之前版本一样?框架难以升级?所以我们决定每周一对 laravel/laravel 的 master 分支进行合并,为了表示对 Taylor Otwell 以及 Laravel 贡献者的尊重,每一个 commit 在合并的时候都进行了保留。
开源协议
由于 Laravel 本身是 MIT 协议,基于 Laravel 开发,我们也希望 ThinkSNS+ 能为开源社区贡献,所以代码上没有采用私有协议,而是选择了 Apache-2.0 协议进行开源。
前端工作流
这块是一个难以选择的问题,我们希望能由内置 Laravel-Mix 的契合度,又希望构建能更适合我们的应用场景,最后,我们选择 放弃 Laravel-Mix 自己做前端构建,衍生出一个新的问题,我们又希望能和 mix 辅助函数无缝配合,看了源代码后,发现问题太简单了,就是一个 mix-manifest.json
的事情而已,但是这个东西却一波三折。
起初,我们选择在 webpack.config.babel.js
中做生成函数,配合第三方包实现,功能实现了。但是如果是拓展包接入也要使用怎么办?最后开发 webpack-laravel-mix-manifest 这个前端包,来生成这个文件。
拓展设计
首选,拓展设计目前有两个,分别是 plus-component
和 plus-plugin
其实都是由 Composer 中间插件实现。
composer 插件 zhiyicx/plus-install-plugin
plus-component
这个设计其实只是想拓展包可以快速的接入路由模板数据模型这些基础开发,也是中间插件 1.0 版本中唯一实现的拓展方式,存在了长达半年之久,可以快速的写路由、控制器、数据模型,目前我们团队出的应用拓展都是以此方式开发实现。
并封装了 php artisan component
命令安装。
plus-plugin
这是一个很年轻的 type 在 composer 插件 1.1 版本中增加的,这个拓展方式实现原理很简单,其实就是 Laravel 的 Service Provider ,熟悉 Laravel 开发都知道,这个服务门面被称之为 "Laravel 拓展" 但是安装并不方便,需要先 composer require vendor/name
,然后在 app.php
的 providers 字段中配置,然后运行命令生成配置文件等。
考虑到 ThinkSNS+ 面向的都是站长、创业者、企业集团等用户,让他们改代码?简直不如杀了他们。所以,萌生了一个想法,如何把这个步骤自动化?让用户只需要 composer require vendor/name
就完成呢?而且,对于例如广播系统的使用,很需要一个这样的东西来方便开发拓展。所以想办法把这个步骤,在 composer require 步骤完成,由此开发了这个模式。
Laravel 的拓展不能直接以这种方式使用哟,因为我们做这个的想法是把配置移交到后台配置。
接口和 SPA
接口,在初期没有完全考虑 REST ful 所以,你能会看到 URL 命名很像 REST ful 规范,实际数据却不是,后续逐步规范化。
这里提到了 API 接口,意味着一个事情,我们抛弃了传统网页,ThinkSNS+ 核心就是一个 用户中心,然后功能全部由拓展实现,目前后台、手机端 都是采用 SPA 调用接口的形式开发。
开源代码仓库:
GitHub:https://github.com/zhiyicx/thinksns-plus(点击star,每日关注开发动态。)
相关推荐
ThinkSNS 是基于 Laravel 开发的一个用户生态基础框架系统,支持动态拓展应用的接入和UI规范设计。
thinksns开源sns、微博源码下载
2.游客模式登录用户能够在未登录状态下访问系统部分功能,涉及与“我”相关功能或需要操作处,系统自动弹出登陆框,强制用户登录 3.登录用户登录可使用手机号码进行直
请看特色再加上是基于Laravel所开发的,它拥有以下的几个主要特点:跟随Laravel一起升级,但是我们放弃LTS版本,长期的框架不变,虽然会会于稳定,但是Plus是一个长期规划维护的开源项目,随时可以升级框架击败我们...
- 导入数据库文件ts_2_0.sql 新增加的功能 - 新浪式的两栏页面 - 新增举报功能 - 新增敏感词过滤功能 - 热门话题的自动生成+后台手动设置 - 微博的删除为假删除 - 后台操作生成操作Log - 新增微博关注的分组功能 - ...
1、使用ftp工具以二进制模式,将该软件包里的 thinksns 目录及其文件上传到您的空间,假设上传后目录仍旧为 thinksns。 2、如果您使用的是Linux 或 Freebsd 服务器,先确认以下目录或文件属性为 (777) 可写模式。...
ThinkSNS基于许多优秀的开源软件开发,提供全方位的社交网络解决方案ThinkSNS源于办公圈项目,WEB端基于国内技术领先的ThinkPHP框架开发,另外还有IM客户端软件。 ThinkSNS全部基于开源项目,同时也作为开源项目...
很好的SNS源码 全自动安装 非常好用 PHP
ThinkSNS V4 APPThinkSNS+ PC
ThinkSNS基于许多优秀的开源软件开发,提供全方位的社交网络解决方案ThinkSNS源于办公圈项目,WEB端基于国内技术领先的ThinkPHP框架开发,另外还有IM客户端软件。 ThinkSNS全部基于开源项目,同时也作为开源项目...
基于PHP的ThinkSNS开源社交系统正式版源码.zip
* 完整的产品构架、完善的基础应用、开箱即用。 * 内置API接口、后续支持自建平台、核心和应用分离。 * 完善的后台管理、可植入独立的应用管理... * 正在完善IM应用,包括独立部署的WebIM和基于Air技术的客户端应用。
ThinkSNS 是基于互联网web2.0思想开发的老牌SNS系统,开始于2008年,其间经历了从 1.0→1.6→2.0→2.3→2.5→2.8→V3多个大版本的迭代,最新版本为V3。 通过开源回馈社会,通过企业实施积累经验,再反哺到产品中来。...
thinksns 数据表结构
社区thinksns
thinksns仿美丽说的花世界源码+旗舰版源码+瀑布流购物分享程序
Thinksns模板开发说明文档Thinksns模板开发说明文档
新版的ThinkSNS将定位于基于微博客的多应用SNS系统,帮助用户打造注重交流、沟通的垂直类社区网站,新版本的ThinkSNS具备如下特性: 完整的微博系统 内置接入多个应用平台,无限应用扩展 支持wap,并提供手机...
ThinkSNS插件开发说明.pdf
thinkSNS基本目录结构,适用于基础入门