※注意 この記事は現在調査を進めながら記述していますので、完全な情報ではありません。
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 の使用方法が理解できない。
また行き詰った・・・。