PHPackages                             redustudio/catagger - 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. redustudio/catagger

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

redustudio/catagger
===================

Create a collection of types

0.1.1(9y ago)115MITPHPPHP &gt;=5.5.0

Since Oct 29Pushed 9y ago2 watchersCompare

[ Source](https://github.com/redustudio/catagger)[ Packagist](https://packagist.org/packages/redustudio/catagger)[ Docs](https://github.com/redustudio/catagger)[ RSS](/packages/redustudio-catagger/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

Catagger
========

[](#catagger)

Simple way to creating types for item on your Laravel App, such as category and tag for article or product, genre for movie, skill for user, etc.

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

[](#installation)

In order to install Catagger, just enter on your terminal

```
$ composer require redustudio/catagger
```

In `config/app.php` file, add

```
Redustudio\Catagger\ServiceProvider::class,
```

in the `providers` array and

```
'Catagger' => Redustudio\Catagger\Facade::class,
```

to the `aliases` array.

If you are not using Laravel 5.3, run this command for publishing migration.

```
$ php artisan vendor:publish --provider="Redustudio\Catagger\ServiceProvider" --tag="migrations"
```

then

```
$ php artisan migrate
```

for migration catagger tables.

Usage
-----

[](#usage)

#### Attaching to Item

[](#attaching-to-item)

```
// Post
use Redustudio\Catagger\CataggerTrait;

class Post extends Model
{
    use CataggerTrait;

    public function categories()
    {
        return $this->cataggers('category');
    }

    public function tags()
    {
        return $this->cataggers('tag');
    }
}

$category = 'Programming';
Catagger::sync($post->categories(), $category);

$tags = ['PHP', 'Laravel', 'Package'];
Catagger::sync($post->tags(), $tags);
```

```
// Movie
use Redustudio\Catagger\CataggerTrait;

class Movie extends Model
{
    use CataggerTrait;

    public function genres()
    {
        return $this->cataggers('genre');
    }
}

$genres = ['Action', 'Adventure', 'Sci-Fi'];
Catagger::sync($movie->genres(), $genres);
```

#### Detaching from Item

[](#detaching-from-item)

```
$genres = ['Action', 'Adventure', 'Sci-Fi'];
Catagger::sync($movie->genres(), $genres);

$genres = ['Action', 'Sci-Fi'];
Catagger::detach($movie->genres(), $genres); // detaching 'Action' and `Sci-Fi`

// detaching all genres
Catagger::detach($movie->genres());
```

Todo
----

[](#todo)

- Unit Test

About ReduStudio
----------------

[](#about-redustudio)

[ReduStudio](http://redustudio.com/) is web development freelancers based in Yogyakarta and East Borneo, Indonesia. We specialise in developing websites and web apps with Laravel, the most popular PHP Framework.

### Let's Start Project With Us

[](#lets-start-project-with-us)

Just Contact Us At:

- Email:
- Facebook: [ReduStudio's FB Page](https://www.facebook.com/Redustudio/)

License
-------

[](#license)

The [MIT](http://opensource.org/licenses/MIT) License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

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

Total

2

Last Release

3526d ago

### Community

Maintainers

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

---

Top Contributors

[![ramadani](https://avatars.githubusercontent.com/u/6203406?v=4)](https://github.com/ramadani "ramadani (13 commits)")

---

Tags

categorizationlaravellaravel-packagetaggablelaraveltypesredustudiocatagger

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/redustudio-catagger/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[renatomarinho/laravel-page-speed

Laravel Page Speed

2.5k1.7M11](/packages/renatomarinho-laravel-page-speed)[vinkius-labs/laravel-page-speed

Laravel Page Speed

2.5k9.6k1](/packages/vinkius-labs-laravel-page-speed)[emargareten/inertia-modal

Inertia Modal is a Laravel package that lets you implement backend-driven modal dialogs for Inertia apps.

90128.1k](/packages/emargareten-inertia-modal)[linkxtr/laravel-qrcode

A clean, modern, and easy-to-use QR code generator for Laravel

3614.9k](/packages/linkxtr-laravel-qrcode)[wearepixel/laravel-cart

A cart implementation for Laravel

1355.6k](/packages/wearepixel-laravel-cart)

PHPackages © 2026

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