Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

area17/twill

3925 stars
3 code files
View area17/twill on GitHub

src/Models/Behaviors/HasPresenter.php

Open in GitHub
trait HasPresenter
{
protected $presenterInstance;
 
public function present($presenter = 'presenter')
{
if (!$this->$presenter or !class_exists($this->$presenter)) {
throw new \Exception('Please set the Presenter path to your Presenter :' . $presenter . ' FQN');
}
 
if (!$this->presenterInstance) {
$this->presenterInstance = new $this->$presenter($this);
}
 
return $this->presenterInstance;
}
 
public function presentAdmin()
{
return $this->present('presenterAdmin');
}
 
public function setPresenter($presenter, $presenterProperty = 'presenter')
{
if (!$this->$presenterProperty) {
$this->$presenterProperty = $presenter;
}
return $this;
}
 
public function setPresenterAdmin($presenter)
{
return $this->setPresenter($presenter, 'presenterAdmin');
}
}

src/Models/Block.php

Open in GitHub
use A17\Twill\Models\Behaviors\HasPresenter;
use Illuminate\Database\Eloquent\Model as BaseModel;
 
class Block extends BaseModel
{
use HasPresenter;
//
}

src/Models/User.php

Open in GitHub
use A17\Twill\Models\Behaviors\HasPresenter;
use Illuminate\Foundation\Auth\User as AuthenticatableContract;
 
class User extends AuthenticatableContract
{
use HasPresenter;
//
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.