PHPackages                             draculaid/phpmocker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. draculaid/phpmocker

ActiveLibrary[Testing &amp; Quality](/categories/testing)

draculaid/phpmocker
===================

Create mock class for final classes and traits; Create mock method for static, private and final methods

v0.0.2(3y ago)974PHPPHP ~8.1.0

Since Mar 19Pushed 3y ago5 watchersCompare

[ Source](https://github.com/dracul-aid/PhpMocker)[ Packagist](https://packagist.org/packages/draculaid/phpmocker)[ RSS](/packages/draculaid-phpmocker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

PhpMocker 0.0.2 - Создание мок-классов в PHP8.1 и выше
======================================================

[](#phpmocker-002---создание-мок-классов-в-php81-и-выше)

```
Если ваш проект использует PHP7.4 - Следует смотерть ветку `master-7`. Эта ветка актуальна под PHP 8.1.0 и выше

```

Страница на [Packagist](https://packagist.org/packages/draculaid/phpmocker) и команды для добавления в композер ([подробней об установке](documentation-ru/install/README.md)):

- для PHP 8.1 и выше `composer require draculaid/phpmocker`
- для PHP 7.4.x - 8.0.x `composer require draculaid/phpmocker dev-master-7`

**Документация и Примеры**

- [Документация](documentation-ru/README.md)
- [Примеры](examples-ru/README.md), включая пример с использованием [автозагрузчика композера и PhpUnit](examples-ru/phpunit-and-composer/README.md)
- [Информация по разработке и улучшению библиотеки](documentation-ru/develop.md)
- [История изменений](documentation-ru/history.md)

---

Библиотека **PhpMocker** позволяет создавать мок-классы (тестовые двойники классов) и использовать мок-методы (тестовые двойники методов), для:

- Финальных классов
- Перечислений
- Непосредственно для трейтов (а не классов, реализующих трейты)
- Финальных, статических и приватных методов

**PhpMocker** работает вне зависимости от используемого фреймворка юнит тестирования, и даже вообще без него. Возможность превращать в мок-методы, все методы любых типов классов, достигается благодаря анализу PHP кода и его изменения в момент загрузки и выполнения кода класса, для этого PhpMocker предоставляет автозагрузчик классов (работающий как с композером, так и с любым другим автозагрузчиком)

**PhpMocker** также поддерживает создание мок-классов с помощью наследования (для классов, абстрактных классов и трейтов)

**Для мок-методов доступно:**

- Счетчик вызовов
- Назначение ответа для вызова
- Выброс любого исключения
- Отработка пользовательской функции, в том числе эта с заменой ответа метода
- Возврат значения аргументов по ссылке
- Изменения значения аргументов метода

Все перечисленные возможности могут быть назначены для определенных агрументов метода.

**PhpMocker** также предоставляет возможность взаимодействия с непубличными элементами классов (методами, свойствами и константами) А также удобный механизм для создания объектов, с назначением свойств. Включая создания объектов, без вызова конструктора, или с вызовом не публичных конструторов.

---

### В планах...

[](#в-планах)

- Продолжить работу над документацией
- Мок для функций
- Мок для конструкций include() и require()

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1115d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/019e4b80dfc0c64728515f2ff5bd85c890aba4d2413292cc1810588d3103d09c?d=identicon)[dracul-aid](/maintainers/dracul-aid)

---

Top Contributors

[![dracul-aid](https://avatars.githubusercontent.com/u/29762625?v=4)](https://github.com/dracul-aid "dracul-aid (13 commits)")

---

Tags

mock-classphpphp-libraryphp8phpunittestingtesting-toolsunittestunittesting

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/draculaid-phpmocker/health.svg)

```
[![Health](https://phpackages.com/badges/draculaid-phpmocker/health.svg)](https://phpackages.com/packages/draculaid-phpmocker)
```

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[phpspec/phpspec

Specification-oriented BDD framework for PHP 7.1+

1.9k36.7M3.1k](/packages/phpspec-phpspec)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
