webgriffe/in-memory-repository 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

webgriffe/in-memory-repository

最新稳定版本:0.4.0

Composer 安装命令:

composer require webgriffe/in-memory-repository

包简介

A Doctrine repository implementation with in-memory storage.

README 文档

README

This library is an "in-memory" implementation of the Doctrine\Persistence\ObjectRepository interface. It can be used to unit test components which depends on Doctrine repositories without involving a real database.

Installation

Add it to your "dev" dependencies:

composer require --dev webgriffe/in-memory-repository

Usage

Let's assume that you're building a movie management application and you have a Doctrine's MovieRepository (which implements a MovieRepositoryInterface) that's used by your services to fetch movies from database in your application.

Now let's say that to unit test those services which depends on this MovieRepository you want to create an "in-memory" implmentation of the MovieRepositoryInterface.

With this small library you can easily do this:

<?php

namespace MyMovieApp\Tests\Repository\InMemory;

use MyMovieApp\Model\Movie;
use MyMovieApp\Repository\MovieRepositoryInterface;
use Webgriffe\InMemoryRepository\ObjectRepository;

/**
 * @extends ObjectRepository<array-key,Movie>
 */
final class MovieRepository extends ObjectRepository implements MovieRepositoryInterface
{
}

And that's it! You have an "in-memory" implementation of the MovieRepositoryInterface. You can use it in your tests as follows:

$movieRepository = new \MyMovieApp\Tests\Repository\InMemory\MovieRepository();
$movieRepository->objectCollection->add(new Movie('Rambo'));
$movieRepository->objectCollection->add(new Movie('Top Gun'));

$this->assertCount(2, $movieRepository->findAll());
$this->assertEquals(new Movie('Rambo'), $movieRepository->findOneBy(['title' => 'Rambo']));

License

This plugin is under the MIT license. See the complete license in the LICENSE file.

Credits

Developed by Webgriffe®.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-02-09