PHPackages                             istianxin/decorator-laravel - 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. istianxin/decorator-laravel

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

istianxin/decorator-laravel
===========================

Decorate your method/function in laravel

v1.0.0(6y ago)04MITPHPPHP ^7.0CI failing

Since Jan 22Pushed 6y ago1 watchersCompare

[ Source](https://github.com/isTianXin/decorator-laravel)[ Packagist](https://packagist.org/packages/istianxin/decorator-laravel)[ RSS](/packages/istianxin-decorator-laravel/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

Decorator Laravel
=================

[](#decorator-laravel)

[![测试覆盖率](./coverage.png)](./coverage.png)

Decorate your function/method by using middlewares in Laravel.

Installation via Composer
-------------------------

[](#installation-via-composer)

> composer require istianxin/decorator-laravel

Quickstart
----------

[](#quickstart)

### Define Middleware

[](#define-middleware)

You can define a middleware similar to [Laravel Middleware](https://laravel.com/docs/6.x/middleware). It should be noticed that the first parameter of th handle method is not ` \Illuminate\Http\Request`, but an array the parameters of the method/function to be decorated. Except for this, everything is the same as Laravel Middleware.

Here is an example:

```
class MultiplicationMiddleware
{
    public function handle($data, $next, $factor = 1)
    {
        return $next($data) * $factor;
    }
}

```

### Callback And Parameters

[](#callback-and-parameters)

Except for middleware, decorator accepts two other parameters, callback and parameters, which are also the first two parameters of `app()->call()`.

Callback is a callable, which can be invoked by `app()->call()` and `call_user_func_array()`, such as: `DummyClass@method`, a closure, `[Dummyclass::class,staticMethod]`, `[new DummyClass(), method]`, `DummyClass::staticMethod`.

Parameters is an array of parameters of the callbale.

### Example

[](#example)

#### Single Middleware

[](#single-middleware)

```
$class = new class {
    public function add($a, $b)
    {
        return $a + $b;
    }
};
$a = 1;
$b = 2;
$factor = 3;

$decorator = new Decorator();
// classname with parameter
$middleware = MultiplicationMiddleware::class . ':' . $factor;
$result = $decorator->setCallback([$class, 'add'])
    ->setMiddleware($middleware)
    ->setParameters([$a, $b])
    ->decorate();
echo $result; // 9

```

#### Multiple Middleware

[](#multiple-middleware)

```
$decorator->setMiddleware([
    $object_middleware1,
    middleware2::class,
    middleware3:class:param1,param2,
    $closure_middleware4
]);

```

or

```
$decorator->setMiddleware([
    $object_middleware1,
    middleware2::class
])->appendMiddleware([
    middleware3:class:param1,param2,
    $closure_middleware4
])

```

See more [TestCase](./tests/DecoratorTest.php).

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

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

2303d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/52024071?v=4)[tianxin](/maintainers/isTianXin)[@isTianXin](https://github.com/isTianXin)

---

Top Contributors

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

---

Tags

decoratorlaravellaravel6-package

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/istianxin-decorator-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/istianxin-decorator-laravel/health.svg)](https://phpackages.com/packages/istianxin-decorator-laravel)
```

###  Alternatives

[wireui/wireui

TallStack components

1.8k1.3M16](/packages/wireui-wireui)[livewire/volt

An elegantly crafted functional API for Laravel Livewire.

4195.3M84](/packages/livewire-volt)[ramonrietdijk/livewire-tables

Dynamic tables for models with Laravel Livewire

21147.4k](/packages/ramonrietdijk-livewire-tables)

PHPackages © 2026

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