Ctx:模块化服务上下文框架

关于 Ctx

这是一个方便你组织逻辑代码的框架,说是框架,但是不是 web 框架,也就是不会跟现有的使用中的框架冲突,可以直接引入使用

背景

很多时候我们在写一个项目,如果把 admin,web 端,移动端 api 等放在同一个项目中,但是这样的话部署就容易暴露所有的接口,如果分开到不同的项目那么就会存在拷贝代码的情况。当然也可以采用微服务/rpc之类,但是这样的话增加了网络开销,http调用啥的。

Ctx 提供了一种新的方式,Ctx 单独为一个项目仓库,其他 api 或则脚本按照不同的用途,单独为不同的项目,但是他们都会共用 Ctx 这个项目。

Ctx 主要解决的是逻辑模块化,不同的模块是不同的服务,比如 user 模块,payment 模块等,不同的模块只负责自己的逻辑,模块之间调用,通过 ctx 进行统一的方式进行组织和调用,方便维护管理。同时 ctx 可以让你很方便的实现 rpc 调用。

更多说明参看文档 https://github.com/jetea/ctx 不过 其实看源码比看文档更快 ,代码就几百行,代码比文档内容要少,使用方式看tests,或 参考 博客:开源项目:采用 Laravel 编写的一个聊天应用 Laravel-Chat 在laravel中的使用,也更好理解。

Ctx 是一个模块化服务上下文框架,帮助模块化组织各种服务逻辑,让服务间调用方式更加统一。

平时调用其他服务的方式一般是 new XyzService()或则采用依赖注入的方式实例化服务,前者会导致一个服务被实例化多次,服务提供方不能更好的进行控制,后者则会存在服务互相依赖的时候造成困扰,如果服务要单例的时候你还需要在服务提供者privider的地方声明服务为单例。

Ctx 提供了一种新的选择,每个模块都只会被实例化一次,每个模块的服务只会提供唯一的入口暴露给调用方,模块不支持多实例,这样可以让模块提供者可以更容易进行服务的控制和维护,所有的模块之间调用方式一致,如:

$this->ctx->模块名->方法()

安装

composer require jetea/ctx=~1.0
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!