【开源社交系统ThinkSNS+研发日记】基于 Laravel Route 的 ThinkSNS+ Component


在前面,我介绍了拓展类型,分别有 plus-compnent 和 plus-plugin 两个,这里重点讲以下如何实现 plus-component 的。

plus-component 是什么

就如同名字一样,plus 代表的是 ThinkSNS+ 程序,用 - 分割 后面的 component 就是「包」或者我们理解成应用。在这里的「应用」指的是通过实现 API 或者 web 的功能。所以产生了这个类型。

但是 plus-component 不只是应用,也可以是简单的功能拓展,例如medz/plus-storage-quniu就是拓展的七牛云储存。

composer 插件的建立

既然涉及到路由,最开始的想法,其实是 /routes 目录下生成文件,包的路由文件复制到这里来。后来,发现了问题不足。
最后想到,plus-component 的实现,不一定是基于路由的应用,也有可能是简单的拓展。我们看下中间插件的接口类:

其中 router 成了非必需项。

转而,拥有了三个 hook 方法 install、update 和 uninstall 方法,这三个分别对应的是安装,升级,卸载。
而设计中,plus-component 中间插件会在 Laravel 的 /config/component.php 中增加如下配置:

中间插件的 composer.json 配置

其实很简单,看到上面添加到 /config/component.php 的代码了, installer 项哪里来的呢?看下 包的配置:

就是最后的 extra.installer-class 配置的,这里是完整的 class name,这样,在 composer 插件执行的时候读取这个额外的配置,并写入到 Laravel 的配置文件中。

install/update/uninstall

在 ThinkSNS+ 中有 php artisan component [install|update|unstall] vendor/name 这样一个命令,主要是用作 包的安装,升级,卸载。
实际运行如下:

通过这样的方式安装包,而这个命令会读取 /config/component.php 的配置,从而得到 installer ,这样,在运行不同的参数的时候后,调用 install,uodate,uninstall 等 需求 hook 达到目的。

router

在最上面的接口类中你也看到了,有一个 router 方法,这个方法返回类型有两个 void|string,所以, void 代表没有路由,string 就表示包路由文件的绝对地址。

在 php artisan component 命令执行的时候,对应的添加 /config/component_routes.php 里面的配置。
在 /app/Providers/RouteServiceProvider.php 中如下:

可能你会误会,为什么只是 include 进来呢?是的,这里的代码其实是参照 Route::group 来的,而在包里面的文件,可以正常的使用 Route::* 进行路由配置。

resource

既然可以基于路由,那就必然会存在静态资源的问题,在接口类中也有这样的规定:

这里返回在包中静态资源存储的目录,执行安装或者升级命令的时候复制到 /public/vendor/name 目录下来达到静态资源发布的功能。

更高级的封装

这里其实是只模式封装,在 ThinkSNS+ 的 php artisan component 其实还有一个 --link 参数,做什么用的?其实不难理解,就是吧静态资源由原来的复制变成创建软链。这在开发过程中很有用。

开源版源码官方正版获取唯一渠道:关注公众号“thinksns”,回复“开源版”即可获得最新源码压缩文件地址。

开源代码仓库:

GitHub:https://github.com/zhiyicx/thinksns-plus(点击星,每日关注开发动态。)

官网:http://www.thinksns.com/

内测申请方式

  提供个人/企业联系方式及认证信息(实名ID /企业营业执照照片或扫描件)及申请说明,发送邮件至lihecong@zhishisoft.com将有机会获得首批内测资格,名额有限,申请从速。

开源不易,为了争取开源,我们团队做了很多努力。把基于Laravel的作品展示在大家面前,之后专栏会持续不断的分享ThinkSNS +开发过程中的技术细节。

下期预告:下一篇文章,会简单的讲以下 ThinkSNS+ 自封装的命令实现。

能看见这里的,一定是真爱~谢谢你们的爱

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31448874/viewspace-2138976/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31448874/viewspace-2138976/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkSNS是一个以php+mysql进行开发的开源sns系统。 ThinkSNS(简称TS),是智士软件旗下的开源微博、社交系统,含微博、论坛、资讯、频道、商城、活动、定位、找人、直播、问答等一系列功能。采用PHP+MySQL技术,核心(微博、用户系统)+多应用+多插件的产品模式。拥有web、Iphone APP、Android APP以及H5、微信端。 TS能够建立社交网站、微博平台、教育平台、商城系统、粉丝社区、知识社区、企业文化社区等多种互联网平台,是移动互联网创业的首选二次开发平台。 ThinkSNS功能简介 朋友圈(微博/) 和新浪微博类似的微博系统,支持文字、表情、图片、短视频、附件、@、话题,满足用户的交流需求,可以用于任何场景。 微吧(论坛) 结合贴吧论坛圈子等模式的核心点,打造的请论坛系统,圈子化有效资源充分利用,助力社区内容整合,自定义吧名、权限等,让运营更轻松,可用于任何应用场景。 IM即时聊天 像微信一样聊天,支持群聊及单聊,语音、图片、文字、表情、位置分享、名片等分享,增强活跃度,让移动在线更加便捷。 问答 支持提问、回答、采纳、评论、分享、收藏、关注、举报、消息提示、消息推送、筛选、搜索、再次编辑、标签筛选等功能,助力抢占内容经济市场,为知识分享、专家咨询、职场经验分享、顾问咨询、职业社交、私人顾问、医生 咨询、医患交流、金融顾问、旅游经验咨询等提供完美解决方案。 资讯 分类管理,热门热评类别等多种排序机制,呈现社区精选动态资讯,支持用户投稿,后台审核,使用最适应用户习惯的页面规划,助力运营者与使用者保持高度粘性,把握信息传播渠道。 活动 发起活动,设置时间限制,调动用户参与积极性,活动分类,地区标定,更加增强了活动模块实用性,适用于创投类/兴趣社交类/大型企业管理等领域运营管理,有效精准保持活跃度。 礼物商城 用户可以通过做任务获得积分,积分可以兑换礼物,礼物可以赠送给其他用户。 支持支付宝等第三方平台充值。让社区运营与商业模式完美结合。 频道(专辑) 汇聚精彩分享,精华帖子,支持用户收听、投稿,管理员推荐展示,将相同碎片化信息集中瀑布流形式展示。 任务中心 游戏化运营机制的存在,使得网站运营充满个性和乐趣,有利于提高用户活跃度。 广场 首页聚合平台各综合栏目精华内容,广场轮播,个人小名片,后台推荐内容模块。 后台配置灵活,可用于平台首页或访客页面,充分体现精华内容,提高用户关注度,适用于各类企业网站/产品官网,社区入口页面使用。 直播(仅限直播版) 智能流媒体实时处理,高并发低延时,稳定安全,极致体验,为教育培训、娱乐演义、访谈媒体、游戏互动等行业带来全新的产品革命。 其他应用及插件: 广告系统、第三方登录、话题、签到、勋章、风云榜、附近的人、积分系统、关注、热门话题、设置、搜索、通讯录、找人、转发、认证、标签、分享、充值提现、推送、内容管理等 Thinksns 后台管理 后台路径:域名/index.php?app=admin&mod=Index&act=index 后台密码:admin123(安装时可设置) 基本部署所需服务器环境: 1. nginx (或apache) 2. mysql (较高版本即可) 3. php (推荐5.6版本,最低兼容5.3) 4. linux(基本的服务器环境 windows server服务器不支持socket扩展部分,无法使用app的即时聊天等部分) ThinkSNS 开源社交论坛系统 v4.6.1更新日志 【修复】聊天无法使用emoji问题 【修复】后台禁用用户后,app第三方登录可登录问题 【修复】部分接口问题 【修复】h5个人中心获取用户信息问题 【修复】后台设置积分问题
ThinkSNS 开源社交系统 v4.6.1更新日志 【修复】聊天无法使用emoji问题 【修复】后台禁用用户后,app第三方登录可登录问题 【修复】部分接口问题 【修复】h5个人中心获取用户信息问题 【修复】后台设置积分问题 ThinkSNS简介 ThinkSNS(简称TS),是智士软件旗下的开源微博、社交系统,含微博、论坛、资讯、频道、商城、活动、定位、找人、直播、问答等一系列功能。采用PHP+MySQL技术,核心(微博、用户系统)+多应用+多插件的产品模式。拥有web、Iphone APP、Android APP以及H5、微信端。 TS能够建立社交网站、微博平台、教育平台、商城系统、粉丝社区、知识社区、企业文化社区等多种互联网平台,是移动互联网创业的首选二次开发平台。 ThinkSNS功能简介 朋友圈(微博/) 和新浪微博类似的微博系统,支持文字、表情、图片、短视频、附件、@、话题,满足用户的交流需求,可以用于任何场景。 微吧(论坛) 结合贴吧论坛圈子等模式的核心点,打造的请论坛系统,圈子化有效资源充分利用,助力社区内容整合,自定义吧名、权限等,让运营更轻松,可用于任何应用场景。详细介绍(http://www.thinksns.com/zx/reader.php?id=122) IM即时聊天 像微信一样聊天,支持群聊及单聊,语音、图片、文字、表情、位置分享、名片等分享,增强活跃度,让移动在线更加便捷。 问答 支持提问、回答、采纳、评论、分享、收藏、关注、举报、消息提示、消息推送、筛选、搜索、再次编辑、标签筛选等功能,助力抢占内容经济市场,为知识分享、专家咨询、职场经验分享、顾问咨询、职业社交、私人顾问、医生 咨询、医患交流、金融顾问、旅游经验咨询等提供完美解决方案。详细介绍(http://www.thinksns.com/zx/reader.php?id=116) 资讯 分类管理,热门热评类别等多种排序机制,呈现社区精选动态资讯,支持用户投稿,后台审核,使用最适应用户习惯的页面规划,助力运营者与使用者保持高度粘性,把握信息传播渠道。详细介绍(http://www.thinksns.com/zx/reader.php?id=123) 活动 发起活动,设置时间限制,调动用户参与积极性,活动分类,地区标定,更加增强了活动模块实用性,适用于创投类/兴趣社交类/大型企业管理等领域运营管理,有效精准保持活跃度。 礼物商城 用户可以通过做任务获得积分,积分可以兑换礼物,礼物可以赠送给其他用户。 支持支付宝等第三方平台充值。让社区运营与商业模式完美结合。 频道(专辑) 汇聚精彩分享,精华帖子,支持用户收听、投稿,管理员推荐展示,将相同碎片化信息集中瀑布流形式展示。 任务中心 游戏化运营机制的存在,使得网站运营充满个性和乐趣,有利于提高用户活跃度。 广场 首页聚合平台各综合栏目精华内容,广场轮播,个人小名片,后台推荐内容模块。 后台配置灵活,可用于平台首页或访客页面,充分体现精华内容,提高用户关注度,适用于各类企业网站/产品官网,社区入口页面使用。 直播(仅限直播版) 智能流媒体实时处理,高并发低延时,稳定安全,极致体验,为教育培训、娱乐演义、访谈媒体、游戏互动等行业带来全新的产品革命。 其他应用及插件: 广告系统、第三方登录、话题、签到、勋章、风云榜、附近的人、积分系统、关注、热门话题、设置、搜索、通讯录、找人、转发、认证、标签、分享、充值提现、推送、内容管理等 Thinksns 后台管理 后台路径:域名/index.php?app=admin&mod=Index&act=index 后台密码:admin123(安装时可设置) 基本部署所需服务器环境: 1.nginx (或apache) 2.mysql (较高版本即可) 3.php (推荐5.6版本,最低兼容5.3) 4.linux(基本的服务器环境 windows server服务器不支持socket扩展部分,无法使用app的即时聊天等部分)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值