Файл: gapps/vendor/prettus/l5-repository/src/Prettus/Repository/Traits/PresentableTrait.php
Строк: 57
<?php
namespace PrettusRepositoryTraits;
use IlluminateSupportArr;
use PrettusRepositoryContractsPresenterInterface;
/**
* Class PresentableTrait
* @package PrettusRepositoryTraits
*/
trait PresentableTrait
{
/**
* @var PresenterInterface
*/
protected $presenter = null;
/**
* @param PrettusRepositoryContractsPresenterInterface $presenter
*
* @return $this
*/
public function setPresenter(PresenterInterface $presenter)
{
$this->presenter = $presenter;
return $this;
}
/**
* @param $key
* @param null $default
*
* @return mixed|null
*/
public function present($key, $default = null)
{
if ($this->hasPresenter()) {
$data = $this->presenter()['data'];
return Arr::get($data, $key, $default);
}
return $default;
}
/**
* @return bool
*/
protected function hasPresenter()
{
return isset($this->presenter) && $this->presenter instanceof PresenterInterface;
}
/**
* @return $this|mixed
*/
public function presenter()
{
if ($this->hasPresenter()) {
return $this->presenter->present($this);
}
return $this;
}
}