承接 pustato/presenter 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pustato/presenter

Composer 安装命令:

composer require pustato/presenter

包简介

Presenter pattern for PHP

README 文档

README

The tool to separate logic of models and views.

Install

Require this package with composer

composer require pustato/presenter

Usage

Implement Pustato\Presenter\Contracts\PresentableContract interface.

<?php
use Pustato\Presenter\Contracts\PresentableContract;

class SomeModel implements PresentableContract {

    /** @var int */
    public $id;

    /** @var string */
    public $firstName;

    /** @var string */
    public $lastName;
    
    /** @var \DateTime */
    public $birthDate;

    public function getPresentableAttribute(string $name)
    {
        return property_exists($this, $name) ? $this->$name : null;
    }
}

Make presenter class.

<?php
use Pustato\Presenter\AbstractPresenter;
use Pustato\Presenter\Contracts\PresentableContract;

class SomeModelPresenter extends AbstractPresenter {

    protected function attributes(PresentableContract $presentable): array
    {
        return [
            'fullName' => $presentable->firstName.' '.$presentable->lastName,
            
            // callable will be calculated at first call and cached.
            'age' => function($presentable) {
                return (int) $presentable
                    ->birthDate
                    ->diff(new \DateTime('now'))
                    ->y;
            }
        ];
    }

}

Create presenter instance and use in views.

$presenterInstance = new SomeModelPresenter($modelInstance)
<p><strong>ID</strong>: <?= $presenterInstance->id ?></p>
<p><strong>Full name</strong>: <?= $presenterInstance->fullName ?></p>
<p><strong>Age</strong>: <?= $presenterInstance->age ?></p>

统计信息

  • 总下载量: 1.94k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-09-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固