0

我想创建自己的课程,以使我的代码有用且简单。我想替换(例如)

$facebook->api('/me');

$myclass->me();

例如,在墙上张贴我需要写

$facebook->api('/me/feed','post',$atch);

我想成功

$myclass->msg($msg);

我如何使用 facebook 类创建自己的类(并且我使用另一个 DB 类)

谢谢你暂停

4

1 回答 1

3

选项 #1 - 快速、简单、常见的 OOP 实践

class myFacebook extends facebook {
  public function me() {
    return $this->api('/me');
  }
  public function msg($msg) {
    return $this->api('/me/feed','post',$msg);
  }
}

选项#2(替代) - 更易于维护,不会与基类属性冲突,易于扩展。这就像 API 的 API :)

class myFacebook {
  public $api;
  public function __construct() {
    $this->api = new facebook(); // your base class
  }
  public function me() {
    return $this->api->api('/me');
  }
  public function msg($msg) {
    return $this->api->api('/me/feed','post',$msg);
  }
  public function api() {
    // more difficult to declare that function in #1 option
  }
}

当您的类使用大量关键字并且可能与基础 API 类发生冲突时,第二个选项会更好。更易于维护,更易于扩展。


我曾经使用过许多 API(ebay、paypal、amazon、fb 等)。 我通常创建 2-3 个类:

  1. 第一个只是发送和下载数据。例如带有缓存的 SOAP 类。
  2. 第二类是创建适当的请求,并使用 1. 类。
  3. 最简化的一个(就像你的一样) - 只需简单快捷地请求类(这是你的基类)

我知道使用extend是最常见的做法,但我个人更喜欢选项#2。

于 2012-09-04T14:43:16.910 回答