承接 maatify/data-fakes 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

maatify/data-fakes

最新稳定版本:v1.0.4

Composer 安装命令:

composer require --dev maatify/data-fakes

包简介

Complete fake simulation layer for MySQL, DBAL, Redis, and Mongo adapters.

README 文档

README

Maatify.dev

Version PHP Build

Monthly Downloads Total Downloads

Stars License Status Code Quality

PHPStan Coverage

Changelog Security

📘 Maatify Data Fakes

In-Memory Fake Adapters for MySQL, Redis, MongoDB & Repository Layer Version: 1.0.4 Project: maatify/data-fakes Maintained by: Maatify.dev

🚀 Overview

maatify/data-fakes is a deterministic, lightweight in-memory data simulation engine fully compatible with all official Maatify Data Adapters.

It allows any repository or service to run and be tested without any real databases, providing:

  • Fake MySQL Adapter
  • Fake MySQL DBAL Adapter
  • Fake Redis Adapter
  • Fake MongoDB Adapter
  • Fake Repository Layer
  • Unit of Work + Snapshot Engine (Phase 6)
  • Fixtures Loader + FakeEnvironment (Phase 7)
  • Advanced Simulation Layer: Latency + Failure Injection (Phase 8)
  • Fully deterministic test isolation
  • Zero external services required — perfect for CI

All Fake Adapters follow the exact same contracts used by real adapters across the Maatify ecosystem.

🔑 Core Dependencies

The core of the library is built on:

  1. AdapterInterface Maatify\Common\Contracts\Adapter\AdapterInterface

  2. ResolverInterface Maatify\DataAdapters\Contracts\ResolverInterface

Every Fake Adapter implements AdapterInterface and is routed through ResolverInterface to ensure 1:1 behavior with real adapters.

🧩 Features

🗄️ Storage Features

  • Fully in-memory storage layer
  • Auto-increment & mixed ID handling
  • Snapshot export/import (Phase 6)
  • Deterministic state across tests

🔍 Query Features

  • SQL-like filtering (where/in/like/order/limit)
  • Mongo-like operators ($in, $gt, $lte, $ne, …)
  • Redis-like operations (list, hash, strings, counters, TTL)

🧱 Repository Layer

  • FakeRepository
  • FakeCollection
  • ArrayHydrator

🔄 Unit of Work (Phase 6)

  • Nested transactions
  • Snapshot-based rollback
  • Transactional wrapper
  • Fully deterministic

📦 Fixtures & Environment (Phase 7)

  • JSON / array fixtures loader
  • SQL + Mongo + Redis hydration
  • FakeEnvironment with auto-reset

⚡ Advanced Simulation Layer (Phase 8)

Adds deterministic CI-safe fault injection:

🔹 ErrorSimulator

  • Failure scenarios per operation
  • Probability-based injection
  • Deterministic exception throwing

🔹 LatencySimulator

  • Per-operation latency
  • Default latency
  • Optional jitter
  • Perfect for CI reproducibility

🔹 SimulationAwareTrait

Hooks used inside adapters:

  • guardOperation()
  • Latency simulation
  • Failure simulation

📦 Installation

composer require maatify/data-fakes --dev

✔ Recommended for testing ✘ Not for production

🧪 Basic Usage

Using the Fake MySQL adapter

use Maatify\DataFakes\Adapters\MySQL\FakeMySQLAdapter;
use Maatify\DataFakes\Storage\FakeStorageLayer;

$storage = new FakeStorageLayer();
$mysql   = new FakeMySQLAdapter($storage);

$mysql->connect();
$mysql->insert('users', ['name' => 'Ada Lovelace']);

$rows = $mysql->select('users', ['name' => 'Ada Lovelace']);

Reset Between Tests

$storage->reset();

📘 Usage Examples

All examples are available in: → docs/examples.md

📁 Fake Components Included

🗄️ Fake Adapters

  • FakeMySQLAdapter
  • FakeMySQLDbalAdapter
  • FakeRedisAdapter
  • FakeMongoAdapter

🧩 Repository Layer (Phase 5)

  • FakeRepository
  • FakeCollection
  • ArrayHydrator

🔀 Routing

  • FakeResolver

🔄 Unit of Work & Snapshots (Phase 6)

  • FakeUnitOfWork
  • SnapshotManager
  • SnapshotState

📦 Fixtures & Environment (Phase 7)

  • FakeFixturesLoader
  • JsonFixtureParser
  • FakeEnvironment
  • ResetState

⚡ Simulation Layer (Phase 8)

  • ErrorSimulator
  • LatencySimulator
  • FailureScenario
  • SimulationAwareTrait

📚 Development Phases & Documentation Links

📝 Full Documentation

👉 README.full.md Includes:

  • Architecture
  • Class reference
  • API maps
  • Fixtures & environments
  • Snapshot behaviors
  • Phase 1 → Phase 8 technical breakdown

🪪 License

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

👤 Author

© 2025 Maatify.dev
Engineered by Mohamed Abdulalim (@megyptm)
https://www.maatify.dev

📘 Full documentation & source code:
https://github.com/Maatify/data-fakes

🤝 Contributors

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

Built with ❤️ by Maatify.dev — Unified Ecosystem for Modern PHP Libraries

统计信息

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

GitHub 信息

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

其他信息

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