Mock built-in PHP functions (e.g. time()) with Mockery. This package relies on PHP's namespace fallback policy. No further extension is needed.

Fund package maintenance!

Installs: 1 119 484

Dependents: 95

Suggesters: 0

Security: 0

Stars: 37

Watchers: 3

Forks: 4

Open Issues: 1

1.4.1 2023-06-13 07:47 UTC

This package is auto-updated.

Last update: 2024-05-23 13:05:41 UTC



Mock PHP built-in functions with Mockery

This package integrates the function mock library PHP-Mock with Mockery.


Use Composer:

composer require --dev php-mock/php-mock-mockery


PHPMockery::mock() let's you build a function mock which can be equiped with Mockery's expectations. After your test you'll have to disable all created function mocks by calling Mockery::close().


namespace foo;

use phpmock\mockery\PHPMockery;

$mock = PHPMockery::mock(__NAMESPACE__, "time")->andReturn(3);
assert (3 == time());



This library comes with the same restrictions as the underlying php-mock:

  • Only unqualified function calls in a namespace context can be mocked. E.g. a call for time() in the namespace foo is mockable, a call for \time() is not.

  • The mock has to be defined before the first call to the unqualified function in the tested class. This is documented in Bug #68541. In most cases you can ignore this restriction. But if you happen to run into this issue you can call PHPMockery::define() before that first call. This would define a side effectless namespaced function.

License and authors

This project is free and under the WTFPL. Responsable for this project is Markus Malkusch


If you like this project and feel generous donate a few Bitcoins here: 1335STSwu9hST4vcMRppEPgENMHD2r1REK