sfDoctrineGuardPlugin と sfDoctrineOAuthPlugin と sfMelodyPlugin の継承関係

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

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

[php]
class sfOAuth1 extends sfOAuth
{
}
[/php]

[php]
class sfMelody1 extends sfOAuth1
{
}
[/php]

[php]
class sfTwitterMelody extends sfMelody1
{
}
[/php]

■ユーザ関係

  • 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

[php]
interface sfSecurityUser
{
}
[/php]
[php]
class sfUser implements ArrayAccess
{
}
[/php]
[php]
[php]
class sfBasicSecurityUser extends sfUser implements sfSecurityUser
{
}
[/php]
[php]
class sfGuardSecurityUser extends sfBasicSecurityUser
{
}
[/php]
[php]
class sfMelodyUser extends sfGuardSecurityUser
{
}
[/php]
[php]
class myUser extends sfMelodyUser
//class myUser extends sfBasicSecurityUser
{
}
[/php]

つまり、親クラスのメソッドや変数(属性)を利用可能ということ。

で、README にある下記のコードは、ユーザを通してメソッドを使用するということのようだ。

[php]
public function executeIndex(sfWebRequest $request)
{
//ユーザを取得しサービスに接続する
$this->getUser()->connect(‘twitter’); //app.yml に登録したサービス名
}
[/php]

ということは、下記コードはインスタンスを得られるという事なのか?

[php]
$melody = $this->getUser()->getMelody(‘twitter’);
[/php]

どうしても、Alias と Namespaces の使用方法が理解できない。
また行き詰った・・・。

This entry was posted in php, symfony, twitter, 技術情報. Bookmark the permalink.

コメントを残す

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