PHPackages                             analogue/presenter - 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. [Database &amp; ORM](/categories/database)
4. /
5. analogue/presenter

ActiveLibrary[Database &amp; ORM](/categories/database)

analogue/presenter
==================

Easy view presenters for Analogue ORM

5.4(9y ago)4658MITPHP

Since Jul 11Pushed 9y ago3 watchersCompare

[ Source](https://github.com/analogueorm/presenter)[ Packagist](https://packagist.org/packages/analogue/presenter)[ Docs](https://github.com/analogueorm/presenter)[ RSS](/packages/analogue-presenter/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (3)Versions (10)Used By (0)

Analogue Presenter
==================

[](#analogue-presenter)

*Based heavily on [Jeffrey Way's Easy View Presenters for Laravel](https://github.com/laracasts/Presenter)*

So you have those scenarios where a bit of logic needs to be performed before some data (likely from your entity) is displayed from the view.

- Should that logic be hard-coded into the view? *No*.
- Should we instead store the logic in the model? *No again!*

Instead, leverage view presenters. That's what they're for! This package provides one such implementation.

Install
-------

[](#install)

Pull this package in through Composer.

```
{
    "require": {
        "analogue/presenter": "0.2.*"
    }
}
```

Usage
-----

[](#usage)

The first step is to store your presenters somewhere - anywhere. These will be simple objects that do nothing more than format data, as required.

Here's an example of a presenter.

```
use Analogue\Presenter\Presenter;

class UserPresenter extends Presenter {

    public function fullName()
    {
        return $this->entity->first . ' ' . $this->entity->last;
    }

    public function accountAge()
    {
        return $this->entity->created_at->diffForHumans();
    }

}
```

Next, on your entity, pull in the `Analogue\Presenter\Presentable` trait.

Here's an example - maybe an Analogue `User` entity.

```
