定制 maatify/data-adapters 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

maatify/data-adapters

Composer 安装命令:

composer require maatify/data-adapters

包简介

DI-first infrastructure adapters providing explicit ownership wrappers around real database and cache drivers.

README 文档

README

Maatify.dev

Version PHP PHP Version

Build

Monthly Downloads Total Downloads

Stars License Status

PHPStan Coverage

Changelog Security

Maatify Data Adapters

Clean, DI-first infrastructure adapters for real drivers.

maatify/data-adapters provides explicit adapter implementations around real infrastructure drivers such as PDO, Redis, and MongoDB.

It exists to act as a dependency-injection boundary — nothing more.

What This Package IS

  • A DI boundary around infrastructure drivers
  • An ownership wrapper for real driver instances
  • Explicit by design (no magic, no auto-detection)
  • Deterministic and statically analyzable
  • 100% testable without real databases

➡️ See full scope definition:
docs/01-scope.md

What This Package IS NOT

This package is NOT:

  • ❌ A unified database API
  • ❌ An abstraction layer
  • ❌ An ORM or query builder
  • ❌ A repository layer
  • ❌ A connection manager
  • ❌ A configuration loader
  • ❌ A lifecycle or retry system

If you expect convenience or API unification, do not use this package.

Supported Drivers

MySQL

  • PDO
  • Doctrine DBAL (Connection)

Redis

  • ext-redis
  • Predis\Client

MongoDB

  • MongoDB\Database

Driver choice is explicit and decided by the application or DI container.

Core Mental Model

Application
   ↓
Configuration / Secrets / Env   (outside this package)
   ↓
Real Driver (PDO / Redis / Mongo)
   ↓
Adapter (DI boundary only)
   ↓
Application / Higher Layers
  • No env access
  • No runtime detection
  • No hidden behavior

Adapter Contract

All adapters implement a minimal contract:

interface AdapterInterface
{
    public function getDriver(): object;
}
  • Runtime return type is object
  • Static typing is preserved via docblock generics
  • No unified API is introduced

➡️ Static analysis details: docs/03-static-analysis.md

Available Adapters

  • MySQLPDOAdapter
  • MySQLDBALAdapter
  • RedisAdapter (ext-redis)
  • RedisPredisAdapter
  • MongoDatabaseAdapter

Each adapter:

  • Accepts a ready driver instance
  • Stores it
  • Returns it via getDriver()

Nothing else.

Factories (Optional Convenience)

Factories exist only to reduce boilerplate.

  • No env reading
  • No auto-detection
  • No hidden defaults
  • Typed error boundary via AdapterCreationException

Factories are optional and not required for normal usage.

➡️ See: docs/06-factories.md

Usage Philosophy

This package enforces:

  • Explicit DI
  • Explicit configuration
  • Explicit error handling
  • Explicit responsibility boundaries

It intentionally avoids:

  • Full examples
  • Framework-specific helpers
  • Runtime convenience

Common Misuse Warnings

  • ❌ Serializing adapters or drivers
  • ❌ Expecting unified behavior
  • ❌ Treating adapters as services

➡️ Detailed warnings: docs/04-misuse-traps.md

When to Use This Package

Use it if you want:

  • Predictable infrastructure boundaries
  • Explicit DI
  • Full control over drivers

When NOT to Use This Package

Do NOT use it if you want:

  • Automatic configuration
  • API unification
  • Runtime magic

Documentation Index

Examples

The following examples demonstrate explicit, real-world usage of maatify/data-adapters with supported drivers.

These examples are intentionally minimal:

  • No frameworks
  • No helpers
  • No bootstrap logic
  • Explicit driver creation and adapter usage

MySQL

Redis

MongoDB

🪪 License

MIT License © Maatify.dev — Free to use, modify, and distribute with attribution.

👤 Author

Engineered by Mohamed Abdulalim (@megyptm) Backend Lead & Technical Architect — https://www.maatify.dev

🤝 Contributors

Special thanks to the Maatify.dev engineering team and all open-source contributors.

Contributions are welcome. Please read the Contributing Guide before opening a PR.

Built with ❤️ by Maatify.dev — Infrastructure-first PHP libraries

maatify/data-adapters 适用场景与选型建议

maatify/data-adapters 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 546 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 11 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「redis」 「mongodb」 「predis」 「pdo」 「doctrine-dbal」 「dependency-injection」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 maatify/data-adapters 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 maatify/data-adapters 我们能提供哪些服务?
定制开发 / 二次开发

基于 maatify/data-adapters 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 546
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 27
  • 依赖项目数: 2
  • 推荐数: 1

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-12