taylornetwork/presenter

该包最新版本(1.1.0)没有可用的许可证信息。

Laravel 的一个演示类。

1.1.0 2017-02-20 16:08 UTC

This package is auto-updated.

Last update: 2024-09-24 13:10:07 UTC


README

为模型添加另一个放置逻辑的地方。与其在模型中添加用于显示/格式化数据的逻辑来使模型杂乱,不如将其添加到演示者中!

这是对 laracasts/Presenter 的一次重构,增加了一些功能、命令等。

安装

通过 Composer

$ composer require taylornetwork/presenter

设置

将服务提供者添加到 config/app.php 文件中的 providers 数组中

'providers' => [

    TaylorNetwork\Presenter\PresenterServiceProvider::class,

],

发布配置

$ php artisan vendor:publish

这将添加 config/presenter.php,您可以在其中定义您希望存储演示者类的命名空间。

用法

使用 artisan 命令创建一个演示者,例如创建一个用于 User 模型的演示者。

$ php artisan make:presenter UserPresenter

这将创建一个演示者类,您可以添加不希望在模型或视图中使用的逻辑。模型属性可通过 $this->model 访问

use TaylorNetwork\Presenter\Presenter;

class UserPresenter extends Presenter
{
    /**
     * Get the user's full name
     *
     * @return string
     */
    public function fullName()
    {
        return $this->model->first_name . ' ' . $this->model->last_name;
    }

    /**
     * Get the time since the user signed up
     *
     * @return string
     */
    public function userSince()
    {
        return $this->model->created_at->diffForHumans();
    }
}

您需要在模型中添加可演示特质和 $presenter 属性

use TaylorNetwork\Presenter\Presentable;
use App\Presenters\UserPresenter;

class User extends Model
{
    use Presentable;

    /**
     * Presenter Class
     *
     * @var string
     */
    protected $presenter = UserPresenter::class;

    // Code
}

您可以使用 present() 访问演示者

<h1>{{ $user->present()->fullName }}, you signed up {{ $user->present()->userSince }}</h1>

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。