gtk/presenter

为您的应用程序提供的简单视图呈现器。

此包的规范存储库似乎已丢失,因此该包已被冻结。

v1.1 2017-04-17 08:23 UTC

This package is not auto-updated.

Last update: 2024-06-08 18:22:00 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

有时在从视图(例如,从您的模型)显示一些数据之前,需要执行一些逻辑。视图呈现器是一种清晰执行与视图相关逻辑的实用方式,而不是将逻辑硬编码到视图中或将逻辑存储在模型中。

安装

通过Composer包管理器安装此包

composer require gtk/presenter

用法

首先,将您的呈现器存储在默认命名空间为App\Presenters的地方。以下是一个呈现器的示例

namespace App\Presenters;

use Gtk\Presenter\Presenter;

class UserPresenter extends Presenter
{
    public function fullName()
    {
        return $this->first_name.' '.$this->last_name;
    }

    public function lastLogin()
    {
        return $this->last_login->diffForHumans();
    }
}

接下来,在您的模型中引入Presentable特质,这将自动实例化您的呈现器类。默认情况下,与模型User关联的呈现器类是App\Presenters\UserPresenter。以下是一个模型的示例

<?php

namespace App\Models;

use Gtk\Presenter\Presentable;

class User extends Model
{
    use Presentable;
}

现在,在您的视图中,而不是

    <h1>Hello, {{ $user->first_name.' '.$user->last_name }}!</h1>
    <p>Last login on {{ $user->last_login->diffForHumans() }}.</p>

您可以做

    <h1>Hello, {{ $user->presenter()->fullName }}!</h1>
    <p>Last login on {{ $user->presenter()->lastLogin }}.</p>

您可以通过以下Presentable特质的属性来指定与模型关联的呈现器类

  • $presenterClass:指定包括其命名空间在内的完整呈现器类名。例如
    protected $presenterClass = 'Acme\Presenters\User';
  • $presenterNamespace:指定呈现器类的命名空间。例如
    protected $presenterNamespace = 'Acme\Presenters';
  • $presenterClassSuffix:指定呈现器类的后缀。例如,使用
    protected $presenterClassSuffix = 'View';

与模型User关联的呈现器类是UserView而不是UserPresenter

许可

Simple View Presenters是开源软件,根据MIT许可许可。