PSR 8 Huggable 接口 「被拒绝」

本篇规范中的 必须,不得,需要,应,不应,应该,不应该,推荐,可能 和 可选 等词按照 [RFC 2119][RFC 2119] 中的描述进行解释

1. 概览

本规范的目的是通过标准化的跨项目间的交流和协作来提高 PHP 社区的整体友好性和合作精神

2. 规范

此规范定义了两个接口:\Psr\Hug\Huggable and \Psr\Hug\GroupHuggable

Huggable 接口

  1. 一个 Huggable 对象通过调用另一个对象的 hug() 方法并传递 $this 作为第一个参数来表达对另一个对象的喜爱和支持

  2. 被调用 hug() 方法的对象 必须 至少回调一次调用者的 hug() 方法

  3. 两个参与拥抱的对象 可以 进行任何次数的拥抱。但是,每一个可拥抱的对象都必须具有终止条件,以防止进入无限循环。例如,一个对象可以配置为最多只允许 3 个相互拥抱,之后将打破拥抱链并返回

  4. 一个对象可以在被拥抱时做一些额外的动作,比如修改状态。一个常见的例子是增加一个内部幸福感或满意度计数器

GroupHuggable 接口

  1. 一个对象可以有选择地实现 GroupHuggable 接口来表明它可以支持一次和多个对象进行拥抱

3. 接口

HuggableInterface

所有的拥抱是相互的。拥抱的物体必须依次拥抱另一个物体 通过在第一个参数上调用hug()返回对象。所有对象都必须 实施一种机制来防止无限循环的拥抱

<?php
namespace Psr\Hug;

/**
 * 定义一个 huggable 接口
 *
 * 一个 huggable 对象表达与另一个 huggable 对象的感情
 */
interface Huggable
{

    /**
     * 拥抱这个对象
     *
     * 所有的拥抱都是相互的。
     * 一个被拥抱的对象必须通过在第一个参数上调用 hug() 方法依次拥抱另一个对象
     * 所有的对象 **必须** 实现一种机制防止无限循环的拥抱
     *
     * @param Huggable $h 拥抱此对象的对象
     */
    public function hug(Huggable $h);
}
<?php
namespace Psr\Hug;

/**
 * 定义一个 huggable 对象
 *
 * 一个 huggable 对象表达与另一个 huggable 对象的感情
 */
interface GroupHuggable extends Huggable
{

  /**
   * 拥抱一序列令人讨喜的对象
   *
   * 当被调用时,该方法 **必须** 调用每个对象的 hug() 方法
   * 集合里的顺序并不重要, 它可以以任何顺序拥抱每一个对象
   *
   * @param $huggables 实现了 Huggable 接口的对象组成的数组或迭代器
   */
  public function groupHug($huggables);
}

RFC 2119

PHP 标准规范

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.