定制 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
  • 点击次数: 3
  • 依赖项目数: 2
  • 推荐数: 1

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固