Я хочу сделать свой собственный класс, чтобы сделать мой код полезным и легким. я хочу заменить (например)
$facebook->api('/me');
в
$myclass->me();
для публикации на стене, например, мне нужно написать
$facebook->api('/me/feed','post',$atch);
я хочу это сделать
$myclass->msg($msg);
как я могу сделать свой собственный класс, используя класс facebook (и я использую другой класс DB)
спасибо за остановку
Вариант № 1 – быстрая, простая, обычная практика для ООП
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 класса:
Я знаю, что использование extend
является наиболее распространенной практикой, но я предпочитаю вариант №2.