PHPackages                             umanit/dev-bundle - 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. umanit/dev-bundle

ActiveSymfony-bundle[Testing &amp; Quality](/categories/testing)

umanit/dev-bundle
=================

Helper classes and dependencies for usual dev environment

2.1.4(5mo ago)01.7k↓30.8%MITPHPPHP ^8.2

Since Apr 22Pushed 4mo agoCompare

[ Source](https://github.com/umanit/dev-bundle)[ Packagist](https://packagist.org/packages/umanit/dev-bundle)[ RSS](/packages/umanit-dev-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (22)Versions (15)Used By (0)

UmanIT - Dev Bundle
===================

[](#umanit---dev-bundle)

This bundle is used for development at UmanIT.

It provides multiple tools and rules to ease development.

PHP Arkitect
------------

[](#php-arkitect)

Rules for PHP Arkitect:

- `NotAbuseFinalUsage`: Disallow to use final classes if at least one public method of your class is called in another public method of the same class.
- `NotUseGenericException`: Disallow the use of generic `\Exception` class.

### Usage

[](#usage)

Edit your `arkitect.php` file to include the following:

```
use Arkitect\Expression\ForClasses\ResideInOneOfTheseNamespaces;
use Umanit\DevBundle\Arkitect\Expression\ForClasses\NotAbuseFinalUsage;
use Umanit\DevBundle\Arkitect\Expression\ForClasses\NotUseGenericException;

// [...]

$rules[] = Rule
    ::allClasses()
    ->that(new ResideInOneOfTheseNamespaces('App'))
    ->should(new NotUseGenericException())
    ->because('we want to force usage of SPL exceptions or custom ones')
;

$rules[] = Rule
    ::allClasses()
    ->that(new ResideInOneOfTheseNamespaces('App'))
    ->should(new NotAbuseFinalUsage())
    ->because('we want avoid final classes which reduce extensibility')
;
```

Foundry
-------

[](#foundry)

Various tools to ease tests creation:

- A database reseter usable as a Symfony command.
- Some utilities function to ease the creation of entities.
- Possibility to use aliases on Doctrine entities within factories.

PHPStan
-------

[](#phpstan)

Rules for PHPStan:

- `EnsureFunctionBackslashRule`: Ensure that some optimizable functions are called with backslash.
- `NoWhereOnQueryBuilderRule`: Disallow to use `where` method on `QueryBuilder` in favor of `andWhere`.

### Usage

[](#usage-1)

Edit your `phpstan.neon` file to include the following:

```
rules:
    - Umanit\DevBundle\PHPStan\Rules\EnsureFunctionBackslashRule
    - Umanit\DevBundle\PHPStan\Rules\NoWhereOnQueryBuilderRule
```

TestUtils
---------

[](#testutils)

One static method `TestUtils::setId` to set the id of an entity by reflection. Useful for tests when your entities do not expose a `setId` method.

### Usage

[](#usage-2)

In your test:

```
TestUtils::setId($entity, 42);
```

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance73

Regular maintenance activity

Popularity20

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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

Every ~16 days

Total

14

Last Release

179d ago

Major Versions

0.0.3 → 1.0.02025-04-24

1.1.1 → 2.0.02025-09-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/27f13221fde4957c93a4ed7293a6460272d626e53df227e3aae4f35aa9289e69?d=identicon)[DjLeChuck](/maintainers/DjLeChuck)

---

Top Contributors

[![DjLeChuck](https://avatars.githubusercontent.com/u/696780?v=4)](https://github.com/DjLeChuck "DjLeChuck (32 commits)")[![aemion](https://avatars.githubusercontent.com/u/10128609?v=4)](https://github.com/aemion "aemion (4 commits)")

---

Tags

testingdevstatic analysisCoding Standard

### Embed Badge

![Health badge](/badges/umanit-dev-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/umanit-dev-bundle/health.svg)](https://phpackages.com/packages/umanit-dev-bundle)
```

###  Alternatives

[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[wp-cli/wp-cli-tests

WP-CLI testing framework

422.7M87](/packages/wp-cli-wp-cli-tests)[savinmikhail/add_named_arguments_rector

Rector rule to add names to arguments for functions'/methods' calls

1969.5k3](/packages/savinmikhail-add-named-arguments-rector)[guanguans/laravel-soar

SQL optimizer and rewriter for laravel. - laravel 的 SQL 优化器和重写器。

2227.8k](/packages/guanguans-laravel-soar)[pierstoval/smoke-testing

Smoke testing automator for Symfony applications

4032.6k](/packages/pierstoval-smoke-testing)[mrpunyapal/rector-pest

Rector upgrade rules for Pest - refactoring and best practices for Pest testing framework

4717.6k18](/packages/mrpunyapal-rector-pest)

PHPackages © 2026

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