Facebook PHP SDK 5:扩展 类
Facebook PHP SDK 5: Extending classes
我是 classes 的新手(更糟糕的是命名空间等)所以我知道必须创建 FacebookMyClass.php class 其中主要的 classes (autoload.php
、Facebook.php
、FacebookApp.php
等),那么我的原型是:
<?php
// I guess
namespace Facebook;
// Do I must 'use' or extending other class(es)?
// use ;
class FacebookMyClass extends Facebook {
// Do I have to "re-declare" parent's vars?
private $my_private_var;
public $my_public_var;
private $access_token;
// The main thing, I think, is how class is constructed
// public function __construct(array $config = []) {
public function __construct($id, $secret) {
// This will work? Need parameters?
parent::__construct();
}
public function accessParentProtectedVars($idfanpage) {
// How can I call/link to Facebook object/request/response?
$object = $this->get('/' . $idfanpage . '/albums?fields=name,id', $this->access_token);
}
private function getTokens($params = []) {
// code...
$this->access_token = '...';
}
}
?>
问题是:如何扩展 Facebook\Facebook class(es)?
命名空间表示一个 class 或一组 classes 在给定项目中的位置。
扩展 class 意味着在您的 class.
范围内继承(获得访问权限)它的方法
举个例子,请记住,您可能需要对此进行调整:
<?php
// Imports the class Facebook from the Facebook namespace eg /Facebook/Facebook.php
use Facebook\Facebook;
class MyFacebookExtension extends Facebook {
function __construct(array $config = []) {
// The base class requires an array parameter, so we accept that and forward it, and then call the parent constructor
parent::__construct($config);
}
// .. whatever methods you want to add .. You can also now access facebook() methods like $this->getclient() etc within this class.
}
我是 classes 的新手(更糟糕的是命名空间等)所以我知道必须创建 FacebookMyClass.php class 其中主要的 classes (autoload.php
、Facebook.php
、FacebookApp.php
等),那么我的原型是:
<?php
// I guess
namespace Facebook;
// Do I must 'use' or extending other class(es)?
// use ;
class FacebookMyClass extends Facebook {
// Do I have to "re-declare" parent's vars?
private $my_private_var;
public $my_public_var;
private $access_token;
// The main thing, I think, is how class is constructed
// public function __construct(array $config = []) {
public function __construct($id, $secret) {
// This will work? Need parameters?
parent::__construct();
}
public function accessParentProtectedVars($idfanpage) {
// How can I call/link to Facebook object/request/response?
$object = $this->get('/' . $idfanpage . '/albums?fields=name,id', $this->access_token);
}
private function getTokens($params = []) {
// code...
$this->access_token = '...';
}
}
?>
问题是:如何扩展 Facebook\Facebook class(es)?
命名空间表示一个 class 或一组 classes 在给定项目中的位置。
扩展 class 意味着在您的 class.
范围内继承(获得访问权限)它的方法举个例子,请记住,您可能需要对此进行调整:
<?php
// Imports the class Facebook from the Facebook namespace eg /Facebook/Facebook.php
use Facebook\Facebook;
class MyFacebookExtension extends Facebook {
function __construct(array $config = []) {
// The base class requires an array parameter, so we accept that and forward it, and then call the parent constructor
parent::__construct($config);
}
// .. whatever methods you want to add .. You can also now access facebook() methods like $this->getclient() etc within this class.
}