PHPackages                             jerry58321/api-transform - 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. [API Development](/categories/api)
4. /
5. jerry58321/api-transform

ActiveLibrary[API Development](/categories/api)

jerry58321/api-transform
========================

is a api transformation layer

v3.0.2(2y ago)2274MITPHPPHP ^8.1

Since May 10Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Jerry58321/api-transform)[ Packagist](https://packagist.org/packages/jerry58321/api-transform)[ RSS](/packages/jerry58321-api-transform/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (19)Used By (0)

安裝方式
----

[](#安裝方式)

---

`composer require jerry58321/api-transform`

`php artisan vendor:publish --provider="jerry58321\ApiTransform\TransformServiceProvider"`

概念
--

[](#概念)

---

在 Transforms 路徑下，應該會有2大主要類別，分別為Models、Features。

`Models (Transform)`：定義已存在的Table Schema，可以被Features引用或者作為其它Models類的關聯引用。

`Features (Transform)`：為每一個API功能定義回傳的內容，在職責分明、低耦合度的情況下，Features類可以作為其它Features類的引用。

使用方法及範例
-------

[](#使用方法及範例)

```
// IndexController.php

...

public function index()
{
    /** @var Models/LoginLog $loginLog */
    $loginLog = LoginLog::with('user')->get();

    return LoginLogTransform::response(compact('loginLog'));
}
```

```
// Transforms/Models/UserTransform.php

...

class UserTransform extends Transform
{
    public function methodOutputKey(): array
    {
        return [
            'user' => false
        ];
    }

    public function __user(Resources $resource)
    {
        return [
            'account' => $resource->account,
            'name'    => $resource->name,
        ];
    }
}
```

```
// Transforms/Models/LoginLogTransform.php

...

class LoginLogTransform extends Transform
{
    public function methodOutputKey(): array
    {
        return [
            'loginLog' => 'login_log'
        ];
    }

    public function __loginLog(Resources $resources)
    {
        $user = UserTransform::quote(['user' => $resources->user]);

        return array_merge($user, [
            'ip'       => $resources->ip,
            'login_at' => $resources->login_at
        ]);
    }
}
```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

Established project with proven stability

 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 ~26 days

Recently: every ~102 days

Total

18

Last Release

1016d ago

Major Versions

v0.0.1 → v1.0.02022-05-11

v1.0.1 → v2.0.02022-05-31

v2.x-dev → v3.0.12023-08-06

PHP version history (2 changes)v0.0.1PHP ^8.0

v3.0.1PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/9935027189df6f0eddf29a8b546d6360de41d46437d725281159274d1908eaa1?d=identicon)[Hubertwei](/maintainers/Hubertwei)

---

Top Contributors

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

---

Tags

apilaraveltransform

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jerry58321-api-transform/health.svg)

```
[![Health](https://phpackages.com/badges/jerry58321-api-transform/health.svg)](https://phpackages.com/packages/jerry58321-api-transform)
```

###  Alternatives

[spatie/laravel-fractal

An easy to use Fractal integration for Laravel applications

1.9k15.1M99](/packages/spatie-laravel-fractal)[mpociot/laravel-apidoc-generator

Generate beautiful API documentation from your Laravel application

3.5k3.1M12](/packages/mpociot-laravel-apidoc-generator)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[dragon-code/laravel-json-response

Automatically always return a response in JSON format

1118.6k1](/packages/dragon-code-laravel-json-response)

PHPackages © 2026

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