PHPackages                             jeslxdev/dto-mocker - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jeslxdev/dto-mocker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jeslxdev/dto-mocker
===================

Gerador de mocks genéricos para DTOs/Inputs/Outputs em PHP, inspirado no Faker.

10PHPCI passing

Since Sep 3Pushed 10mo agoCompare

[ Source](https://github.com/jeslxdev/dto-mocker)[ Packagist](https://packagist.org/packages/jeslxdev/dto-mocker)[ RSS](/packages/jeslxdev-dto-mocker/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

DTO Mocker
==========

[](#dto-mocker)

Gerador leve de mocks para classes DTO/Inputs/Outputs em PHP. Gera instâncias e arquivos de fixtures para uso em testes e desenvolvimento.

Compatível com qualquer framework PHP (Laravel, Hyperf, Symfony etc.).

Instalação (desenvolvimento)
----------------------------

[](#instalação-desenvolvimento)

Recomendo instalar como dependência de desenvolvimento:

```
composer require --dev jeslxdev/dto-mocker
```

> Observação: este repositório já contém um script CLI mínimo para gerar fixtures sem dependências de framework.

Uso programático
----------------

[](#uso-programático)

Exemplo simples em código:

```
use DtoMocker\DtoMocker;

$mocker = new DtoMocker();
$dto = $mocker->make(\App\Dto\UserDto::class);

// $dto é uma instância populada com valores gerados
var_dump($dto);
```

Você pode sobrescrever geradores por tipo, por exemplo:

```
$mocker->extend('string', fn() => 'valor_fixo');
```

CLI: gerar fixtures
-------------------

[](#cli-gerar-fixtures)

Inclui um utilitário mínimo para varrer classes e gerar fixtures JSON em `tests/_fixtures`.

Executar via composer script:

```
composer dto-mocker:generate
```

Ou direto:

```
php bin/generate-mocks.php --path=src --out=tests/_fixtures --count=3
```

Opções suportadas:

- `--path` (padrão: `src`) — diretório a ser escaneado;
- `--out` (padrão: `tests/_fixtures`) — pasta de saída;
- `--count` (padrão: `3`) — quantas instâncias por classe.

Novas opções:

- `--format` (json|php) — formato de saída; `json` por padrão;
- `--include-non-dto` — incluir classes sem sufixo `Dto` (usa detecção por propriedades tipadas);
- `--only` — lista separada por vírgula de classes (ou short names) a gerar, ex.: `--only=UserDto,App\\Dto\\OrderDto`;
- `--max-depth` — profundidade máxima de serialização/recursão (padrão: 3).

Detecção: por padrão o script inclui classes cujo nome termina com `Dto`. Use `--include-non-dto` para fazer detecção por propriedades tipadas. Use `--only` para restringir a lista a classes específicas.

O que são fixtures
------------------

[](#o-que-são-fixtures)

Fixtures são conjuntos de dados usados para inicializar o estado de testes ou ambientes de desenvolvimento. Este projeto gera fixtures em JSON ou PHP (arrays) que podem ser carregados em testes para simular entradas ou estados sem depender de banco de dados real.

Exemplos de saída
-----------------

[](#exemplos-de-saída)

O script grava arquivos JSON com nome no formato `Namespace_SubNamespace_ClassName.json`.

Exemplo de uso em testes (PHPUnit): carregue o JSON gerado com `json_decode()` e use os dados como fixtures.

Integração com frameworks
-------------------------

[](#integração-com-frameworks)

Para integração com frameworks considere implementar um comando dedicado (Artisan/Hyperf) e templates de factories PHP; posso ajudar a adicionar essas integrações.

Testes
------

[](#testes)

Rode a suíte com PHPUnit (ex.: em ambiente com PHP/Composer configurados):

```
composer install
vendor/bin/phpunit -v
```

Contribuição
------------

[](#contribuição)

Pull requests são bem-vindos. Para mudanças maiores, abra uma issue primeiro.

PR checklist mínimo:

- testes atualizados e passando;
- seguir PSR-12;
- atualizar a documentação se necessário.

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance40

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/40040384?v=4)[João Emanuel](/maintainers/jeslxdev)[@jeslxdev](https://github.com/jeslxdev)

---

Top Contributors

[![jeslxdev](https://avatars.githubusercontent.com/u/40040384?v=4)](https://github.com/jeslxdev "jeslxdev (4 commits)")

### Embed Badge

![Health badge](/badges/jeslxdev-dto-mocker/health.svg)

```
[![Health](https://phpackages.com/badges/jeslxdev-dto-mocker/health.svg)](https://phpackages.com/packages/jeslxdev-dto-mocker)
```

###  Alternatives

[gossi/php-code-generator

Toolset for generating PHP code

155206.9k33](/packages/gossi-php-code-generator)[dragon-code/benchmark

Simple comparison of code execution speed between different options

12037.9k6](/packages/dragon-code-benchmark)[askvortsov/flarum-auto-moderator

Powerful automation engine.

1419.4k2](/packages/askvortsov-flarum-auto-moderator)[ammardaana/laravel-domain-driven-design

Generate laravel Domain driven design (monolith) structure

111.8k](/packages/ammardaana-laravel-domain-driven-design)

PHPackages © 2026

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