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 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-redisPredis\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
MySQLPDOAdapterMySQLDBALAdapterRedisAdapter(ext-redis)RedisPredisAdapterMongoDatabaseAdapter
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
- Scope & Boundaries
- Design Decisions
- Static Analysis
- Misuse Traps
- Lifecycle
- Factories
- Dependency Policy & Matrix
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 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 maatify/data-adapters 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Generates Symfony2 documents, forms and CRUD
Asynchronous version of Predis
Microservice RPC through message queues.
The CodeIgniter Redis package
贝嘟分布式缓存扩展
A package to allow laravel/passport use with mongodb/laravel-mongodb
统计信息
- 总下载量: 546
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 27
- 依赖项目数: 2
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-12