PHPackages                             devravik/extended-resources - 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. devravik/extended-resources

ActiveLibrary[API Development](/categories/api)

devravik/extended-resources
===========================

Extended utilities for Laravel API resources, including flexible formatting and response enhancements.

1.0.1(2mo ago)20MITPHPPHP ^8.1||^8.2||^8.3||^8.4CI passing

Since Mar 2Pushed 2mo agoCompare

[ Source](https://github.com/devravik/extended-resources)[ Packagist](https://packagist.org/packages/devravik/extended-resources)[ Docs](https://github.com/devravik/extended-resources)[ RSS](/packages/devravik-extended-resources/feed)WikiDiscussions main Synced 1mo ago

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

Laravel Extended Resources
--------------------------

[](#laravel-extended-resources)

[![Latest Version on Packagist](https://camo.githubusercontent.com/96626c085181c26aca0fdc8b00ae5ff1312e8044189159a3daabe723ff6df62b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646576726176696b2f657874656e6465642d7265736f75726365732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devravik/extended-resources)[![Total Downloads](https://camo.githubusercontent.com/03fa8569ebdd961116cc76e83367e9b8ffc0ec42187f907ffd2f4c6182a98336/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646576726176696b2f657874656e6465642d7265736f75726365732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devravik/extended-resources)[![Tests](https://camo.githubusercontent.com/433677ea54088bfc2b13961fe2fce9688e8e14eb8e6e9d7070d342a92808ae67/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f646576726176696b2f657874656e6465642d7265736f75726365732f74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/devravik/extended-resources/actions/workflows/tests.yml)[![PHP Version](https://camo.githubusercontent.com/e75a19b403cd8201f01ea16b82b68ab05e23eb664ebd080d9aec867bddc9c27c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f646576726176696b2f657874656e6465642d7265736f75726365732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devravik/extended-resources)[![License](https://camo.githubusercontent.com/8ab60cbb58bf990107dd2e2c8d60e946fd29a6c5e101dd641ac94ae24c2e6994/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f646576726176696b2f657874656e6465642d7265736f75726365732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devravik/extended-resources)

Extended Resources is a small but powerful extension around Laravel API resources that lets you:

- Define **multiple named formats** for the same resource using PHP 8 attributes.
- Apply **on-the-fly modifications** to the serialized data (array merges, closures, invokable objects).
- Use **convenience enhancements** like `only()` and `except()` without building custom transformers.
- Adjust the **HTTP status code** directly from the resource.

It is designed to feel native to Laravel while giving you more control over how resources are shaped and delivered.

---

Requirements
------------

[](#requirements)

DependencyVersionPHP`^8.1 | ^8.2 | ^8.3 | ^8.4`Laravel`^10.0 | ^11.0 | ^12.0`---

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

[](#installation)

Install via Composer:

```
composer require devravik/extended-resources
```

There is no configuration or service provider registration required; the package is auto-discovered by Laravel.

---

Core Concepts
-------------

[](#core-concepts)

### 1. Defining Formats with Attributes

[](#1-defining-formats-with-attributes)

Extend `Devravik\ExtendedResources\ExtendedResource` instead of `Illuminate\Http\Resources\Json\JsonResource`, and define one or more `#[Format]` methods:

```
