PHPackages                             emsifa/evo - 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. emsifa/evo

ActiveLibrary

emsifa/evo
==========

Evolutionize the way you write Laravel code

v0.4.6(4y ago)18691[5 issues](https://github.com/emsifa/evo/issues)MITPHPPHP ^8.0

Since Aug 23Pushed 4y ago1 watchersCompare

[ Source](https://github.com/emsifa/evo)[ Packagist](https://packagist.org/packages/emsifa/evo)[ Docs](https://github.com/emsifa/evo)[ GitHub Sponsors](https://github.com/emsifa)[ RSS](/packages/emsifa-evo/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (13)Versions (18)Used By (0)

 [![Logo](https://raw.githubusercontent.com/emsifa/evo/main/logo.svg)](https://raw.githubusercontent.com/emsifa/evo/main/logo.svg)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7848bc59e95c122a14e20fa59d61b0c35dfc38d7177d08b239a56fb6a22ad77b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f656d736966612f65766f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/emsifa/evo)[![GitHub Tests Action Status](https://camo.githubusercontent.com/9a7313cceae673f67a980536190bb23e3980bb866b1a0b8619994fcbdf30e856/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f656d736966612f65766f2f72756e2d74657374733f6c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/emsifa/evo/actions?query=workflow%3Arun-tests+branch%3Amain)[![Coverage Status](https://camo.githubusercontent.com/d25603aa60dbb97d912625801503b73cbc2d9271ca7247d62deaf28372bf964a/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f656d736966612f65766f3f7374796c653d666c61742d73717561726526746f6b656e3d36444a3653394d4f474f)](https://app.codecov.io/github/emsifa/evo)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/62c80678f03f085ffc3185eb1dcde224f574ebacda6e245c0614f564daf2cbdd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f656d736966612f65766f2f436865636b253230262532306669782532307374796c696e673f6c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/emsifa/evo/actions?query=workflow%3A%22Check+%26+fix+styling%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/0325db6d467ca540a08708d2b2bbf3b8a67037f26deff510f19593f7cc059995/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f656d736966612f65766f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/emsifa/evo)

---

Evo is a Laravel package that leverages PHP 8 features. It change the way you write Laravel app into something like this:

```
#[RoutePrefix('users')]
class UserController extends Controller
{
    #[Get]
    public function index(
        #[Query] int $limit,
        #[Query] int $offset,
        #[Query('q')] string $keyword,
    ): UserPaginationResponse
    {
        // your logic goes here
    }

    #[Post]
    public function store(
        #[Body] CreateUserDto $data
    ): StoreUserResponse
    {
        // your logic goes here
    }

    #[Put('{id}')]
    public function update(
        #[Param] int $id,
        #[Body] UpdateUserDto $data,
    ): UpdateUserResponse
    {
        // your logic goes here
    }
}
```

Motivation
----------

[](#motivation)

Defining input and output types in a head of a function will trigger your brain to specifies input and output types before writing the logic. So when it comes to write the logic, you know exactly what you have, where it comes, and what to return.

Also, by defining input and output type in this way, not only you and your teammate would easily read the specifications. Machines too. That is why Evo can provide some amazing features such as auto validation, auto casting, live swagger documentation, mocking API, etc.

Features
--------

[](#features)

- Register routes using attributes.
- Apply middleware using attribute.
- Route prefixing using attribute.
- Inject request data (Header, Param, Cookie, Body, Query) into parameters using attribute.
- Automatic type casting.
- Automatic type validation.
- Define validation rules directly in DTO properties using attribute.
- Custom value caster.
- Generate DTO file.
- Generate Response file.
- Generate Swagger UI and OpenAPI file.
- Mocking API.

Installation
------------

[](#installation)

> Evo currently is still in the development, it could have some breaking changes before the final release.

You can install the package via composer:

```
composer require emsifa/evo:dev-main
```

Documentation
-------------

[](#documentation)

See [https://www.emsifa.com/evo](https://www.emsifa.com/evo/).

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Muhammad Syifa](https://github.com/emsifa)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity54

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

Every ~3 days

Total

17

Last Release

1680d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bf2e85e5574fc28f87c28311a5ad7bcbec884e9ea21e88d63639f46ed6af72d1?d=identicon)[emsifa](/maintainers/emsifa)

---

Top Contributors

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

---

Tags

laravelevoemsifa

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/emsifa-evo/health.svg)

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

###  Alternatives

[spatie/laravel-honeypot

Preventing spam submitted through forms

1.6k6.0M60](/packages/spatie-laravel-honeypot)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

71510.9M66](/packages/laravel-mcp)[proengsoft/laravel-jsvalidation

Validate forms transparently with Javascript reusing your Laravel Validation Rules, Messages, and FormRequest

1.1k2.3M49](/packages/proengsoft-laravel-jsvalidation)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[spatie/laravel-prometheus

Export Laravel metrics to Prometheus

2651.3M6](/packages/spatie-laravel-prometheus)[galahad/laravel-addressing

Laravel package providing addressing functionality

70316.6k](/packages/galahad-laravel-addressing)

PHPackages © 2026

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