プロジェクト

全般

プロフィール

Bug(バグ) #1609

Zend_Loader::registerAutoload()がdeprecatedで警告メッセージが出る

Hidenori Goto13年以上前に追加. 8年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-09-24
期日:
進捗率:

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

警告メッセージ詳細

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in ****\OpenPNE3\lib\vendor\Zend\Loader.php on line 266

使用箇所

  • lib/config/opApplicationConfigration.class.php registerZend()
  • lib/config/opApplicationConfigration.class.php unregisterZend()
  • lib/util/opMailSend.class.php execute()

修正案

Zend_Loader::registerAutoload()をOpenPNE側で用意する自前のスタティックメソッドで置き換える。
コード例は添付参照。

opTestLoader.class.php 表示 (1.09 KB) Hidenori Goto, 2010-09-24 19:48


関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #2304: Zend_Loader::registerAutoload()がdeprecatedで警告メッセージが出る Invalid(無効) 2011-07-27

関係しているリビジョン

リビジョン d47a8fc6 (差分)
Maki Takahashi12年以上前に追加

use Zend_Loader_Autoloader instead of Zend_Loader::registerAutoload() (refs #1609)

リビジョン 1620132b (差分)
Maki Takahashi12年以上前に追加

changed registerZend()/unregisterZend() to use Zend_Loader_Autoloader (refs #1609)

履歴

#1 Mutsumi Imamura12年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更
  • 対象バージョンOpenPNE 3.7.0 にセット

#2 Shingo Yamada12年以上前に更新

  • 担当者Maki Takahashi にセット

#3 Maki Takahashi12年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#4 Maki Takahashi12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

d47a8fc6bd8caedbf2db1dbd4a772bdc62813fd9 にて対応しました。
devモードにて、招待メール送信時に警告メッセージが表示されないことを確認しています。

stable-3.6.xに含まれるZendFramework1.7.3PL1には、
置き換えるべきZend_Loader_Autoloaderが無いため(1.8以降からある)
ライブラリをバージョンアップしなければ対応不要
(Zend_Loader_Autoloaderが無いためエラーになってしまう)のようです。

#5 Rimpei Ogawa12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

元々のコードで、opMailSend::execute() から Zend_Loader::registerAutoLoad() が直接呼ばれているのは間違いで、opApplicationConfiguration::unregisterZend() を使うべきだと思います。

opApplicationConfiguration の registerZend(), unregisterZend() の2箇所だけであれば、以下のように直接 Zend_Loader_Autoloader を使ってもそれほど複雑なコードにはならないので独自の Loader を作成するほどでもないかなと思います。

--- a/lib/config/opApplicationConfiguration.class.php
+++ b/lib/config/opApplicationConfiguration.class.php
@@ -504,7 +504,8 @@ abstract class opApplicationConfiguration extends sfApplicationConfiguration

     set_include_path($zendPath.PATH_SEPARATOR.get_include_path());

-    opZendLoader::registerAutoLoad();
+    require_once 'Zend/Loader/Autoloader.php';
+    Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
     self::$zendLoaded = true;
   }

@@ -515,7 +516,8 @@ abstract class opApplicationConfiguration extends sfApplicationConfiguration
       return true;
     }

-    opZendLoader::registerAutoload('Zend_Loader', false);
+    Zend_Loader_Autoloader::resetInstance();
+    spl_autoload_unregister(array('Zend_Loader_Autoloader', 'autoload'));
     self::$zendLoaded = false;
   }

#6 Shingo Yamada12年以上前に更新

  • トラッカーEnhancement(機能追加・改善) から Bug(バグ) に変更
  • 3.6 で発生するかYes にセット

#7 Maki Takahashi12年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更

#8 Maki Takahashi12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更

フィードバックに従い
1620132b6a50069c68ed3cda4e25264773b6d527 にて
opApplicationConfigurationのregisterZend(), unregisterZend()内でZend_Loader_Autoloaderを使うように修正しました。

#9 Rimpei Ogawa12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

修正確認しました。

#10 Shingo Yamada12年以上前に更新

  • 360対象beta13 にセット

#11 Yuma Sakata約12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更
  • 3.6 で発生するかYes から Unknown (未調査) に変更
  • 3.4 で発生するかUnknown (未調査) にセット

テストOKです。

#12 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF