PHPackages                             laravel-bricks/flux - 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. laravel-bricks/flux

ActivePackage

laravel-bricks/flux
===================

A description for flux.

v2.1.0(2y ago)0420MITPHPPHP ^8.0|^8.1

Since Oct 25Pushed 2y ago2 watchersCompare

[ Source](https://github.com/ttensrl/flux)[ Packagist](https://packagist.org/packages/laravel-bricks/flux)[ RSS](/packages/laravel-bricks-flux/feed)WikiDiscussions master Synced 1mo ago

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

Flux
====

[](#flux)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)![Travis](https://camo.githubusercontent.com/127f520ecba2b3f656ebe318067c8318df207f98b0cd61a16af1fd1f7dc94f5a/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6c61726176656c2d627269636b732f666c75782e7376673f7374796c653d666c61742d737175617265)[![Total Downloads](https://camo.githubusercontent.com/5cd8aa6ff28e5db804ac5536365e620546f90927a509ada333b40eae85d357c0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c61726176656c2d627269636b732f666c75782e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/laravel-bricks/flux)

Flux è un componente Bricks per la gestione degli stati del Flusso base per contenuti.
Stati Flusso Base

 ```
graph TD;
  Node1[Draft] --> Node2[Published];
  Node2 --> Node3[Unpublished];
  Node3 --> Node2;
```

      Loading Installazione
-------------

[](#installazione)

```
composer require laravel-bricks/flux
```

Pubblicazione Asset
-------------------

[](#pubblicazione-asset)

E Possibile pubblicare gli Asset **View**, Lang ed il file di configurazione utilizzando la sintassi classica del **comando artisan** `vendor:publish`

```
php artisan vendor:publish  --provider="LaravelBricks\Flux\FluxServiceProvider"
```

É inoltre possibile specificare un tag per selezionare il tipo di **asset** da publicare `--tag"Bricks-Flux-Translations"` per i file delle lingue, `--tag="Bricks-Flux-Config"` per i file di configurazione e `--tag="Bricks-Flux-View"` per le viste.

Uso
---

[](#uso)

### Modifiche del Database

[](#modifiche-del-database)

É necessario che la **tabella** che ospita i contenuti da sottoporre al flusso base, contenga un **campo** utile per l'implementazione della gestione degli stati del flusso, solitamente questo campo si chiama `status`, aggiungere il campo alla vostra **migration**.

```
$table->string('status',32)->nullable();
```

Nel caso che, il nome del campo sia diverso da status, sarà necessario specificarlo nel file di configurazione `bricks-flux.php`

```
    /*
    |--------------------------------------------------------------------------
    | Nome del campo del database
    |--------------------------------------------------------------------------
    |
    | Qui è possibile specificare il nome del campo in cui vengono salvati gli stati
    |
    */
    'column' => 'status',
```

### Modifiche al Modello

[](#modifiche-al-modello)

Implementare **l'interfaccia** `Flowable` ed aggiungere il **Tratto** `HasEasyFlux` al **Modello**.

```
class Post extends Model implements Flowable
{
    use HasEasyFlux;
```

E possibile specificare il valore dello stato per i tre stati fondamentali del flusso base nel file di configurazione `bricks-flux.php`

```
    /*
    |--------------------------------------------------------------------------
    | Valori degli stati del flusso base
    |--------------------------------------------------------------------------
    |
    | Qui è possibile specificare per i tre stati fondamentali draft, published, unpublished
    | il valore da inserire all'interno del campo del database
    |
    */
    'status' => [
        'draft' => 'draft',
        'published' => 'published',
        'unpublished' => 'unpublished'
    ]
```

Quando viene creato un record, automaticamente viene aggiunto lo stato **draft**.

### Implementazione

[](#implementazione)

laravel-bricks/Flux possiede due **implementazioni** preconfezionate per il cambio di stato, una è basata sui **component di laravel**, ed una è basata su **Livewire**.

#### Implementazione via Laravel Component

[](#implementazione-via-laravel-component)

L'implementazione via **component** richiede di aggiungere un componente all'interno della **form** che gestisce la modifica, passando l'oggetto che implementa **l'interfaccia** Flowable.

```

```

Per il salvataggio è necessario aggiungere la **Facade** di salvataggio nel'update del **controller**.
Utilizzare la **Facade** `Capacitor::fluxing(Flowable $object, String $status)`

```
    $post->title = $request->post('title');
    $post->body = $request->post('body');
    $post->save();

    Capacitor::fluxing($post, $request->post('status'));
```

#### Implementazione via Livewire

[](#implementazione-via-livewire)

L'implementazione via **Livewire** richiede soltanto l'inserimento del tag fuori da una form, non è necessario aggiungere altro al **controller**.

```

```

### Scope

[](#scope)

É possibile ottenere l'elenco **Eloquent** tramite filtri preimpostati grazie al **Tratto** `HasEasyFlux` per i contenuti in Bozza, Pubblicati e non Pubblicati.

```
    $posts = Post::draft()->get(); //Ottiene tutti i contenuti nello stato bozza

    $posts = Post::published()->get(); //Ottiene tutti i contenuti nello stato Pubblicato

    $posts = Post::unPublished()->get(); //Ottiene tutti i contenuti nello stato Non Pubblicato

    $posts = Post::notPublished()->get(); //Ottiene tutti i contenuti negli stati diversi da pubblicato
```

### Salvataggio Stati

[](#salvataggio-stati)

Se fosse necessario creare specifiche **implemetazioni** e si rendesse necessario salvare gli stati è possibile utilizzare i seguenti **metodi**.

```
    $post->title = $request->post('title');
    $post->body = $request->post('body');
    $post->save();

    $post->publish(); //Imposta lo stato su Pubblicato

    $post->unPublish(); //Imposta lo stato su non pubblicato

    $post->togglePublish(); //Imposta lo stato su pubblicato se lo stato è bozza o non pubblicato, e lo stato su non pubblicato se lo stato è pubblicato
```

### Accessors e Mutators

[](#accessors-e-mutators)

Il tratto `HasEasyFlux` aggiunge due **Accessors** e un **Mutator**,

#### Accessor per la Traduzione

[](#accessor-per-la-traduzione)

**L'accessor** per le lingue è invocabile tramite la **proprietà** `$post->trans_status`, questa rispondera con la traduzione dello stato nella lingua corrente.

#### Accessor e Mutator per l'astrazione del campo

[](#accessor-e-mutator-per-lastrazione-del-campo)

Il **tratto** `HasEasyFlux` aggiunge un **mutator** ed un **accessor** per la **proprieta** `$post->status` questa **proprietà** funzionerà indipendentemente dal nome del campo nel database.

Testing
-------

[](#testing)

Run the tests with:

```
vendor/bin/phpunit
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- [Stefano Pimpolari](https://www.ttemptation.it/gitlab/ttemptation/laravel-laravel-bricks/base-flux)
- [All Contributors](https://www.ttemptation.it/gitlab/ttemptation/laravel-laravel-bricks/base-flux/activity)

Security
--------

[](#security)

If you discover any security-related issues, please email  instead of using the issue tracker.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](/LICENSE.md) for more information.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% 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 ~78 days

Total

3

Last Release

774d ago

### Community

Maintainers

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

---

Top Contributors

[![lucaterribili](https://avatars.githubusercontent.com/u/54412648?v=4)](https://github.com/lucaterribili "lucaterribili (3 commits)")[![ttensrl](https://avatars.githubusercontent.com/u/103409839?v=4)](https://github.com/ttensrl "ttensrl (1 commits)")

---

Tags

laravel

### Embed Badge

![Health badge](/badges/laravel-bricks-flux/health.svg)

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

###  Alternatives

[slowlyo/owl-admin

基于 laravel、amis 开发的后台框架~

61214.2k26](/packages/slowlyo-owl-admin)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[highsolutions/eloquent-sequence

A Laravel package for easy creation and management sequence support for Eloquent models with elastic configuration.

121130.3k](/packages/highsolutions-eloquent-sequence)[glhd/linen

21135.6k](/packages/glhd-linen)[api-platform/laravel

API Platform support for Laravel

59126.4k6](/packages/api-platform-laravel)[interaction-design-foundation/laravel-geoip

Support for multiple Geographical Location services.

17221.0k3](/packages/interaction-design-foundation-laravel-geoip)

PHPackages © 2026

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