2017 © Pedro Peláez
 

library charcoal-presenter

The missing layer between models and views.

image

mducharme/charcoal-presenter

The missing layer between models and views.

  • Tuesday, July 31, 2018
  • by mducharme
  • Repository
  • 1 Watchers
  • 1 Stars
  • 78 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 1 % Grown

The README.md

Charcoal Presenter

The missing layer between models and views. The Presenter takes any data model_ (objects or arrays) and serializes them into a presentation array according to a _transformer., (*1)

Usage

Simplest usage, with a simple array transformer:, (*2)

$presenter = new Presenter([
    'id',
    'name',
    'display_date'
]);

$model = $factory->create(Model::class);
$viewData = $presenter->transform($model);

A callable is preferred if operations on objects are required:, (*3)

The callable signature must array: callable(mixed $model)., (*4)

$presenter = new Presenter(function($model) {
    return [
        'id',
        'name',
        'display_date' => $model->date->format('Y-m-d')
    ];
});

$model = $factory->create(Model::class);
$viewData = $presenter->transform($model);

Common transformers (or customizable transformers, shown below) should be self-contained inside their own Callable classes:, (*5)


class MyTransformer { /** * @var string $dateFormat */ private $dateFormat; /** * @param string $dateFormat The date format. */ public function __construct($dateFormat) { $this->dateFormat = $dateFormat; } /** * @param mixed $model The model to transform. * @return array */ public function __invoke($model) { $displayDate = $obj->date->format($this->dateFormat); return [ 'id', 'name', 'display_date'=>$displayDate ]; } } $presenter = new Presenter(new MyTransformer('Y-m-d')); $model = $factory->create(Model::class); $viewData = $presenter->transform($model);

The Versions

31/07 2018

dev-master

9999999-dev

The missing layer between models and views.

  Sources   Download

MIT

The Development Requires

by Mathieu Ducharme

10/06 2016

0.1

0.1.0.0

The missing layer between models and views.

  Sources   Download

MIT

The Development Requires

by Mathieu Ducharme