※注意 この記事は現在調査を進めながら記述していますので、完全な情報ではありません。
sfMelodyPlugin のReadmeも理解できないし、情報サイトもほとんどないし、使用方法が全く分からないので、ソースコードを追ってみることにした。
とりあえず、わかったことは、下記の継承関係が存在する。ライブラリ的には依存関係。
■OAuth関係
- sfDoctrineOAuthPlugin/lib/base/vendor/oauth/OAuth.php
- sfDoctrineOAuthPlugin/lib/base/sfOAuth.class.php
- sfDoctrineOAuthPlugin/lib/base/sfOAuth1.class.php
- sfMelodyPlugin/lib/melody/base/sfMelody1.class.php
- sfMelodyPlugin/lib/melody/sfTwitterMelody.class.php
class sfOAuth1 extends sfOAuth { }
class sfMelody1 extends sfOAuth1 { }
class sfTwitterMelody extends sfMelody1 { }
■ユーザ関係
- symfony/lib/user/sfUser.class.php
- symfony/lib/user/sfSecurityUser.class.php
- symfony/lib/user/sfBasicSecurityUser.class.php
- sfDoctrineGuardPlugin/lib/user/sfGuardSecurityUser.class.php
- lib/model/doctrine/sfDoctrineGuardPlugin/sfGuardUser.class.php
- sfMelodyPlugin/lib/user/sfMelodyUser.class.php
- apps/frontend/lib/myUser.class.php
interface sfSecurityUser { }
class sfUser implements ArrayAccess { }
class sfBasicSecurityUser extends sfUser implements sfSecurityUser { }
class sfGuardSecurityUser extends sfBasicSecurityUser { }
class sfMelodyUser extends sfGuardSecurityUser { }
class myUser extends sfMelodyUser //class myUser extends sfBasicSecurityUser { }
つまり、親クラスのメソッドや変数(属性)を利用可能ということ。
で、README にある下記のコードは、ユーザを通してメソッドを使用するということのようだ。
public function executeIndex(sfWebRequest $request) { //ユーザを取得しサービスに接続する $this->getUser()->connect('twitter'); //app.yml に登録したサービス名 }
ということは、下記コードはインスタンスを得られるという事なのか?
$melody = $this->getUser()->getMelody('twitter');
どうしても、Alias と Namespaces の使用方法が理解できない。
また行き詰った・・・。