mamluk/

kipchak

一个用于一致地构建和管理API的API开发工具包(ADK)

0.40 2024-07-17 20:11 UTC

This package is auto-updated.

Last update: 2024-09-17 20:30:10 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Kipchak by Mamluk

Mamluk的Kipchak

Kipchak是什么?

Kipchak是一个用PHP编写的API开发工具包(ADK),用于快速构建API。它基于多年的经验,在生产环境中管理和处理成千上万的并发请求。本工具包旨在让我们的工程师轻松构建和维护此类API。它建立在Slim框架之上,可以描述为Slim的一个包装(和有见地的)实现。它并没有从Slim中移除任何东西,您仍然可以使用Kipchak中的任何东西。

好吧,足够了。我如何看到它的实际应用?

此存储库是核心ADK。要开始使用Kipchak并看到它的实际应用,请访问https://github.com/mam-luk/kipchak-template

别急,我想了解更多。Kipchak不是什么?

Kipchak不是一个像Symfony或Laravel这样的框架。实际上,它是建立在Slim框架之上的。为什么?因为Slim速度快且高效,与Symfony和Laravel相比,内存、处理和体积的占用要小得多,尽管它们有自己的优点,但它们的内存和处理占用要大得多。然而,Kipchak从Symfony和Laravel中借用库,以启用ADK。

好吧,所以它是Slim。使用它我得到了什么?

您将获得我们在Mamluk(https://mamluk.net)、伊斯兰网络(https://islamic.network)和7x(《https://7x.ax》)构建API所需的所有东西

  • 超级简单的配置管理
  • 一致的启动、依赖和中间件注入
  • 无缝升级(除非Slim升级中的核心路由更改)
  • 如果无法无缝升级,则保持一致 - 我们始终需要更新多个API,因此将有一条前进的道路
  • 以下组件预安装,可以通过YAML文件启用/禁用
    • Symfony缓存,预配置为Memcached和文件系统缓存(Redis即将推出,也许)
    • 可配置的HTTP缓存头
    • Doctrine DBAL和ORM,用于连接和处理多个RDBMS(是的,我们也考虑了Propel、Atlas和Eloquent,但最终选择了Doctrine。我们将在某个时候分享原因)
    • 用于与CouchDB集成的CouchDB客户端(CouchDB是一个可靠、分布式、最终一致的NoSQL数据库)
    • 在Memcached或CouchDB中进行会话处理
    • 基于JWKS的基于密钥的认证和授权
    • 基于密钥的认证
    • 一致的错误和异常处理
    • 包含在Laravel HTTP客户端中的(如果您经常使用Guzzle,这将是一种清新的体验)
    • Monolog进行一致记录
    • 关于如何处理路由、控制器、模型和应用程序总体布局的看法
    • 从您的代码生成API的OpenAPI规范(使用Swagger PHP)
    • 对象映射/数据传输对象(使用Valinor)
    • 预配置的测试工具(工作中)
    • 带有NGINX Unit或Apache作为应用服务器的基本Dockerfile

在哪里可以找到如何使用Kipchak的文档?

请访问https://github.com/mam-luk/kipchak-template

很好。为什么这个ADK被称为Kipchak?而马穆鲁克是谁,是什么?

Kipchak是突厥世界中一个家族,它在1250年作为埃及马穆鲁克苏丹国崛起。更多详情请见https://en.wikipedia.org/wiki/Mamluk_Sultanate。由于公司名为Mamluk,因此将我们的主要开发工具称为Kipchak是恰当的。

致谢和感谢

  • Slim框架
  • Symfony(用于Symfony Cache和Doctrine)
  • Laravel用于HTTP客户端
  • Monolog
  • Team CuyZ为Valinor(对象映射/数据传输对象)
  • Robert Allen为Swagger PHP库
  • Bryon Horna为Slim Session

有关Kipchak中所有包的完整列表,请参阅https://github.com/mam-luk/kipchak/blob/master/composer.json#L14

马穆鲁克是谁

访问https://mamluk.net