sfDoctrineGuardPlugin と sfDoctrineOAuthPlugin と sfMelodyPlugin の継承関係

2011年7月4日 Posted by PURGE

※注意 この記事は現在調査を進めながら記述していますので、完全な情報ではありません。

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 の使用方法が理解できない。
また行き詰った・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です