1. Go to this page and download the library: Download deefour/presenter library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
deefour / presenter example snippets
use Deefour\Presenter\Resolver;
(new Resolver)->presenter(new Article); //=> 'ArticlePresenter'
use Deefour\Presenter\Resolver;
$resolver = new Resolver;
$resolver->resolveWith(function ($instance) {
return "App\Presenters\" . get_class($instance) . 'Presenter';
});
$resolver->presenter(new Article); //=> 'App\Presenters\ArticlePresenter'
class BlogPost
{
static public function modelClass()
{
return Article::class;
}
}
(new Resolver)->presenter(new BlogPost); //=> 'ArticlePresenter'
use Deefour\Presenter\Resolver;
$article = new Article;
$presenterName = (new Resolver)->presenter($article);
$presenter = new $presenterName($article);
use Deefour\Presenter\Resolver;
(new Resolver)->presenter(new Article); //=> 'BlogPresenter'
use Deefour\Presenter\Resolver;
(new Resolver)->presenter(new ObjectWithoutPresenter); //=> null
(new Resolver)->presenterOrFail(new ObjectWithoutPresenter); //=> throws NotDefinedException
use Deefour\Presenter\Presenter;
class ArticlePresenter extends Presenter
{
public function isDraft()
{
return $this->_model->isDraft() ? 'Yes' : 'No';
}
}
namespace App;
use Illuminate\Support\Collection;
class Article
{
public function category()
{
return new Category;
}
public function tags()
{
$collection = new Collection;
$collection->push(new Tag);
$collection->push(new Tag);
$collection->push(new Tag);
return $collection;
}
}
use Deefour\Presenter\Resolver;
$presenter = (new Resolver)->presenter(new Article); //=> ArticlePresenter
(new $presenter)->category; //=> CategoryPresenter
(new $presenter)->tags->first(); //=> TagPresenter