Google Fatal

この投稿は3年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2014 年 1 月 8 日 1,237日前)
861文字 (読了時間2分)

SPONSORED LINK

さっき自分のサイトで気づいたのですが、拙作プラグインGianismでGoogle アカウントによるログインを有効にしている場合、Google Analyticatorというプラグインを同時に使っているとFatal Errorが発生するということがわかりました。

現象としては、ログインページが最後まで表示されず、Googleボタンの直後がすべて表示されなくなります。

エラーメッセージはこんな感じです。

PHP Fatal error: Cannot redeclare class URI_Template_Parser in /path/to/wp-content/plugins/gianism/sdks/google/external/URITemplateParser.php on line 30

いまのところ対応策としてはどちらかのプラグインをオフにするしかありません。

どうもすいません。

原因と今後の対策

一応調べてみた感じでは以下のような原因がありました。

  1. GianismではGoogleが提供しているGoogle API PHP SDKを利用している
  2. Google Analyticatorも6.4ぐらいから同じSDKを利用するようになった
  3. 両方で同じクラスファイル読み込んでた → 同じ名前のクラス宣言すんなというエラー

以前もJetpackがFacebook PHP SDKの魔改造版を仕込んで来て、Gianismが動かなくなるという現象がありましたが、今回もそれと同じですね。

Google のPHP SDKの問題点は、require_once地獄でオートローディングじゃないので、複数のプラグインで利用した場合、バッティングを防げないんですよね。オートローディングをしてもらうしかないんですよ。

でもなんか対応する予定がなさそうなので、Forkしてから入れるかなーとか、色んなこと考えちゃいますね。

WordPressプラグインみたいな開発環境だと、requireはダメやね。

終わり。

 

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

SPONSORED LINK

この記事について

この記事はが2014 年 1 月 8 日にプログラミングの記事として公開しました。

高橋先生の電子書籍

高橋先生の電子書籍

Amazonで電子書籍も買えます。

好きな言葉

既存の社会制度の中で生き、それを享受してきた人間にとって、そのシステムに期待するものが何もなかった者たちが、格別恐れもせずにその破壊を試みる可能性を想像することはおそらく不可能なのだ。

— ミシェル・ウエルベック

高橋先生の処女作

『途中下車』高橋文樹

2001年幻冬舎NET学生文学大賞受賞作です。

Web制作やります

Web制作やります

Web制作のご依頼は株式会社破滅派へ

不定期メルマガ

高橋文樹.comでは、不定期でニュースレターを配信しています。滅多に送らないので是非購読してください。

高橋文樹.comではプライバシーポリシーに準じて登録情報を取り扱います。