PHPackages                             wearelaradev/serializable - 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. wearelaradev/serializable

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

wearelaradev/serializable
=========================

Serializable trait

05091PHP

Since Apr 11Pushed 2y agoCompare

[ Source](https://github.com/laradev/serializable)[ Packagist](https://packagist.org/packages/wearelaradev/serializable)[ RSS](/packages/wearelaradev-serializable/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Features
--------

[](#features)

This php package implements a serialization feature. This serialization trait, named "Serializable", allows you to serialize any php object into an array or json. It also enables any object implementing this trait to become a serializer in its own right.

Getting started
---------------

[](#getting-started)

```
    composer require wearelaradev/serializable
```

Usage
-----

[](#usage)

Properties must be public or have an associated getter to be serialized.

### Basic Usage

[](#basic-usage)

```
use Laraved\Serializable\Serializable;

class MyObject
{
    use Serializable;

    public string $foo = "foo";
    public string $bar = "bar";
}

var_dump((new MyObject())->toArray());
// output
// ["foo" => "foo", "bar" => "bar"]

var_dump((new MyObject())->toJson());
// output
// "{"foo": "foo", "bar": "bar"}"
```

### Used with of getters

[](#used-with-of-getters)

```
use Laradev\Serializable\Serializable;

class MyObject
{
    use Serializable;

    private string $foo = "foo";
    protected string $bar = "bar";

    public function getFoo(): string
    {
        return $this->foo;
    }
}

var_dump((new MyObject())->toArray());
// output
// ["foo" => "foo"]

var_dump((new MyObject())->toJson());
// output
// "{"foo": "foo"}"
```

### Used with a whitelist and blacklist strategy

[](#used-with-a-whitelist-and-blacklist-strategy)

You can apply a whitelist or blacklist strategy to your serializer properties using a property or function.

#### With a property:

[](#with-a-property)

##### Whitelist

[](#whitelist)

```
use Laradev\Serializable\Serializable;

class MyObject
{
    use Serializable;

    private array $whitelist = [
        "foo"
    ];

    public string $foo = "foo";
    public string $bar = "bar";
}
var_dump((new MyObject())->toArray());
// output
// ["foo" => "foo"]

var_dump((new MyObject())->toJson());
// output
// "{"foo": "foo"}"
```

##### Blacklist

[](#blacklist)

```
use Laradev\Serializable\Serializable;

class MyObject
{
    use Serializable;

    private array $blacklist = [
        "foo"
    ];

    public string $foo = "foo";
    public string $bar = "bar";
}
var_dump((new MyObject())->toArray());
// output
// ["bar" => "bar"]

var_dump((new MyObject())->toJson());
// output
// "{"bar": "bar"}"
```

#### With a function:

[](#with-a-function)

##### Whitelist

[](#whitelist-1)

```
use Laradev\Serializable\Serializable;

class MyObject
{
    use Serializable;

    public string $foo = "foo";
    public string $bar = "bar";

    protected function whitelist(): array
    {
        // your logic
        return [
            "foo"
        ];
    }
}
var_dump((new MyObject())->toArray());
// output
// ["foo" => "foo"]

var_dump((new MyObject())->toJson());
// output
// "{"foo": "foo"}"
```

##### Blacklist

[](#blacklist-1)

```
use Laradev\Serializable\Serializable;

class MyObject
{
    use Serializable;

    public string $foo = "foo";
    public string $bar = "bar";

    protected function blacklist(): array
    {
        // your logic
        return [
            "foo"
        ];
    }
}
var_dump((new MyObject())->toArray());
// output
// ["bar" => "bar"]

var_dump((new MyObject())->toJson());
// output
// "{"bar": "bar"}"
```

Additional information
----------------------

[](#additional-information)

If you encounter a bug or have any ideas for improvement, don't hesitate to send me a PR or contact me via email at  :)

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity19

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://www.gravatar.com/avatar/5a9c29f3d9dfa6243801e195f0c08ccd97b02cfbf213544c0cd1f8e9516c7284?d=identicon)[wearelaradev](/maintainers/wearelaradev)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/wearelaradev-serializable/health.svg)

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

PHPackages © 2026

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