laracasts/presenter

简单的视图展示者

安装数: 2,642,342

依赖者: 57

建议者: 1

安全: 0

星标: 864

关注者: 28

分支: 111

公开问题: 25

0.2.7 2024-05-10 00:35 UTC

This package is auto-updated.

Last update: 2024-09-10 01:22:50 UTC


README

你可能会遇到一些场景,在这些场景中,在从视图(可能来自你的实体)显示一些数据之前,需要执行一些逻辑。

  • 这个逻辑应该直接硬编码到视图中吗?
  • 我们应该将逻辑存储在模型中吗?再次不是

相反,利用视图展示者。这正是它们的作用!这个包提供了一个这样的实现。

安装

通过Composer引入这个包。

{
    "require": {
        "laracasts/presenter": "0.1.*"
    }
}

使用

第一步是将你的展示者存储在某个地方 - 任何地方。这些将是非常简单的对象,它们所做的只是按照需要格式化数据。

这是一个展示者的例子。

use Laracasts\Presenter\Presenter;

class UserPresenter extends Presenter {

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

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

}

接下来,在你的实体中引入 Laracasts\Presenter\PresentableTrait 特性,它将自动实例化你的展示者类。

这是一个例子——可能是一个Laravel的 User 模型。

<?php

use Laracasts\Presenter\PresentableTrait;

class User extends \Eloquent {

    use PresentableTrait;

    protected $presenter = 'UserPresenter';

}

这就完成了!现在,在你的视图中,你可以这样做

    <h1>Hello, {{ $user->present()->fullName }}</h1>

注意,调用 present() 方法(这将返回你的新或缓存的展示者对象)的好处是,它还清楚地表明了如果你需要修改页面上全名的显示方式,你必须去哪里。

祝您玩得开心!

Jeffrey @ https://laracasts.com