`
开源社交系统
  • 浏览: 3101 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

社交系统ThinkSNS+在研发过程中,如何做到 Laravel 配置可以网站后台配置

 
阅读更多

什么是ThinkSNS+

  ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+、ThinkSNS V4、ThinkSNS【简】。

 

距离上一次分享差不多一周了,本文分享下利用 Laravel 的 Bootstrapping 达到网站后台设置 laravel 配置。

TS+开发日记4副本.png

需求场景

首先,ThinkSNS+ 作为一个用户可以使用的「社交系统」和开源网站程序一样拥有后台,有一些配置,Laravel 是要求写在 /config/*.php 的配置文件中的,例如 app.name、app.debug 等信息的配置,以及 Jobs 的驱动配置,广播系统的配置等,我们都搬到了网站后台,用户安装后可以不用修改配置文件的情况下镜像配置。

如何覆盖配置

我们首先打开 Illuminate\Foundation\Application::bootstrapWith 方法,代码如下:

程序图片1.png

重点代码在 $this['events']->fire('bootstrapping: '.$bootstrapper, [$this]); 和 $this['events']->fire('bootstrapped: '.$bootstrapper, [$this]); 上,很明显是加载并运行 bootstrapper 的前置和后置事件。

所以,我们看还有一个方法叫做 beforeBootstrapping 和 afterBootstrapping 然后怎么做呢?我们看

程序图片2.png

没错,这里是固定了顺序的,我错误的加载顺序,会造成laravel的失败,所以,我们选择在之前继承 Illuminate\Foundation\Application 的应用基础上增加一个事件,代码如下:

程序图片3.png

哪里添加的事件

因为 ThinkSNS+ 是继承了 Illuminate\Foundation\Application 实现了新的 Application 类,所以我们直接在构造方法里面增加了代码。
这样,当 Laravel 启动,但是还没有加载 bootstrapper 的时候,已经把 加载配置的后置事件注入进去了。当加载配置执行完成后就会执行我注入的后置事件。

后置事件的实现

我们在创建了 \Zhiyi\Plus\Bootstrap\LoadConfiguration 这样一个类,注册为后置事件,路径为: /app/Bootstrap/LoadConfiguration.php ,然后实现代码如下:

111.jpg

很简单,因为 app('config') 是一个 Illuminate\Contracts\Config\Repository 接口的实例,所以直接调用 set 方法进行配置覆盖。
而 Zhiyi\Plus\Support\Configuration 类是封装的自定义配置加载类,加载的配置文件存放在一个 YAML 文件中,这个类实现了 自定义配置文件的加载和保存。这样,我们从后台调用 API 然后 constroller 调用这个类的 save 方法进行持久化。

Zhiyi\Plus\Support\Configuration::getConfigurationBase

为什么要特殊说一下这个方法?因为这个方法的特殊性,也是 depth merge 实现的重要函数,在 Repository 中支持 app.name = value 这样的形式进行深曾键值赋值,利用这一个特性,这个函数将 多维数组转换为一维。
效果:

程序图片5.png

然后调用 app('config')->set($arr) 就对 Laravel 的 config 进行了 depth merge。
最后,持久化保存的 YAML 内容如下:

程序图片6.png

所以,基于 depth merge 在 .plus.yml 配置中,只需要保存部分配置,即可不想配置结构的完整性的情况下对 Laravel 镜像配置合并。

 

开源代码仓库:

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

 

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

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

 

 

这里是传送门:

 

《ThinkSNS+基于 Laravel master 分支【研发日记一】》

《ThinkSNS+研发中前端的抉择(webpack/Vue)踩坑日记【研发日记二】》

《基于 Laravel Route 的 ThinkSNS+ Component【研发日记三】》

 

分享到:
评论

相关推荐

    thinksns.zip_thinksns_thinksns+源码_thinksns源码

    这个标题“thinksns.zip_thinksns_thinksns+源码_thinksns源码”暗示了我们正在讨论的是ThinkSNS的源代码压缩包,包含完整的项目文件,可用于开发和定制。 1. **ThinkSNS系统概述**:ThinkSNS是一个基于PHP语言和...

    ThinkSNS + 移动端使用说明书1

    ThinkSNS+ 是一款强大的社交网络软件,其移动端提供了丰富的功能,让用户可以在手机上轻松享受社区互动的乐趣。本说明书将详细介绍如何在移动设备上注册、登录、找回密码,以及使用各项功能。 一、注册/登录 1. **...

    开源社交系统ThinkSNS V4.2版本发布

    ### 开源社交系统ThinkSNS V4.2版本发布及其版本介绍 #### 一、界面优化与用户体验提升 - **卡片化风格设计**:新版ThinkSNS采用了直观且易用的卡片化界面设计,使整体视觉更为简洁明快,提高了用户的浏览效率与...

    thinksns社交系统.zip

    thinksns社交系统中,文件名为“thinksns”的压缩包包含了整个系统的源代码和必要的配置文件。解压后,用户可以查看到系统结构,包括前端界面、后台管理、数据库模型以及各类插件等。这些文件构成了系统的基础框架,...

    微博社交系统ThinkSNS_V3.1

    微博社交系统ThinkSNS_V3.1-----------ThinkSNS开源微博系统,是智士的开源社交平台。采用PHP+MySQL技术平台,微博+应用的产品模式,同时拥有iphone、android客户端、wap、3G版界面。通过应用、插件、风格包..

    开源微博社交系统ThinkSNS_V4.60

    ThinkSNS(简称TS),是智士软件旗下的... ThinkSNS全方位提供网站开发|移动端APP定制|微信端软件研发|小程序|社群系统搭建|源代码|技术支持,是建立社交网站|企业社区论坛|微博平台|APP软件|系统集成|互联网创业首选.

    ThinkSNS是基于Laravel开发的一个用户生态基础框架系统

    【ThinkSNS:基于Laravel构建的用户生态基础框架系统】 ThinkSNS是一款采用现代Web...在实际开发过程中,熟悉Laravel和ThinkSNS的特性,结合"slimkit-plus-df58454"提供的资源,将有助于高效构建出满足需求的Web应用。

    plus:PlusPlus(ThinkSNS +)是使用Laravel构建的功能强大且易于开发的社交系统

    一个功能强大,易于开发和动态扩展的社交系统。加上是PSR规范代码统一,并功能块松连接。您安装完成Plus并不意味着已经成功安装了所有功能,因为Plus使用预设的原则,所以您安装完成后拥有了所有可以被请求的REST...

    基于PHP的ThinkSNS开源社交系统正式版源码.zip

    【描述】"基于PHP的ThinkSNS开源社交系统正式版源码.zip" 指出这个压缩包包含了ThinkSNS系统的源代码,这意味着用户可以自由地查看、修改和分发这些代码,以适应不同的需求和定制化开发。.zip文件格式是一种常见的...

    PHP实例开发源码——ThinkSNS 开源社交系统正式版.zip

    【标题】"PHP实例开发源码——ThinkSNS 开源社交系统正式版.zip" 提供的是一个基于PHP语言开发的开源社交系统ThinkSNS的完整源代码。这个系统旨在为开发者提供一个构建社区、社交网络平台的基础框架,帮助开发者快速...

    基于PHP的ThinkSNS 开源社交系统正式版.zip

    安装与部署ThinkSNS的过程相对简单,一般包括以下步骤:下载最新版本的源码,配置合适的服务器环境,修改配置文件以连接数据库,运行安装脚本,最后进行必要的安全设置。值得注意的是,为了保证系统的安全性和性能,...

    app端使用手册1

    朋友圈是ThinkSNS+移动端的一个核心功能,用户可以在朋友圈中发表动态、查看好友的动态、评论、点赞、收藏、分享等。 评论是ThinkSNS+移动端提供的一种社交功能,用户可以对他人的动态进行评论,评论内容可以是文字...

    ts社交软件使用文档

    ThinkSNS+是一个开源的社交平台,支持多平台部署,能够满足各种互联网平台的建设需求,例如社交网站、微博平台、教育平台、商城系统以及企业文化和知识社区等。本文将围绕这份文档的知识点展开详细介绍。 首先,...

    ThinkSNS开源社交系统4.6.1正式版

    thinksns是一个以php mysql进行开发的开源sns系统。 ThinkSNS基于许多优秀的开源软件开发,...ThinkSNS是国内最大的开源社群系统和移动社交引擎,以最专业化的社交类产品服务于企业和创业者,并致力于社交SNS在商业

    ThinkSNS开源社交论坛系统 v4.6.1 bulid0630

    ThinkSNS 开源社交系统 v4.6.1更新日志 【修复】聊天无法使用emoji问题 【修复】后台禁用用户后,app第三方登录可登录问题 【修复】部分接口问题 【修复】h5个人中心获取用户信息问题 【修复】后台设置积分问题 ...

    ThinkSNS V4 APPThinkSNS+ PC.rar

    《ThinkSNS V4 APP与ThinkSNS+ PC:一体化社交平台深度解析》 ThinkSNS V4 APPThinkSNS+ PC是一款集成了移动端APP和PC端应用的社交软件解决方案,旨在为企业和个人用户提供全面、高效且自定义化的社交网络服务。这...

    ThinkSNS与Ucenter的整合

    总结来说,整合ThinkSNS与Ucenter主要涉及安装Ucenter、在Ucenter后台配置ThinkSNS应用、修改ThinkSNS配置文件以及测试通信状态。通过这样的步骤,可以实现用户数据的统一管理和同步,提升平台的用户体验。正确理解...

    ThinkSNS1.6系统测试方案

    ThinkSNS1.6系统测试方案旨在全面评估该社交网络平台的功能性、性能、用户界面和配置适应性,确保其在正式发布前达到预定的质量标准。此方案由七星团队的成员共同参与制定,包括柳荣庆、李申城、王栓成、宋冰、...

    PHP实例开发源码—ThinkSNS 开源社交系统正式版.zip

    【标题】"PHP实例开发源码—ThinkSNS 开源社交系统正式版.zip" 提供的是一个基于PHP语言开发的开源社交系统——ThinkSNS的完整源代码。这个系统允许开发者或企业构建自己的社交网络平台,例如类似于Facebook或...

    ThinkSNS2.0改进版代码包

    内置的超级管理员 ... 安装方法 - 程序包放入服务器 - 导入数据库文件ts_2_0.sql 新增加的功能 - 新浪式的两栏页面 ...- 完善微博广场(全新的UI、新增名人堂功能、热门转发和热门话题可以屏蔽某些话题)

Global site tag (gtag.js) - Google Analytics