プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #4176

Task(タスク) #4112: PHP7対応のための修正を行う

PEARパッケージのアップデート

Youichi Kimuraほぼ7年前に追加. ほぼ4年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2017-03-27
期日:
進捗率:

100%


説明

Overview (概要)

現在 OpenPNE に同梱されている PEAR 1.9.0 (2009-09-03) には、PHP5 以前の古い文法によるソースコードが多数存在している。
特に $hoge =& new Hoge(); のような代入文は PHP7 では廃止されており、実行時に Parse Error で異常終了する原因となっている (#4112-1)
当チケットでは OpenPNE を PHP7 対応する上で必要となる PEAR の更新作業を行う。

Spec (仕様)

OpenPNE の lib/vendor/PEAR/ 以下に同梱されている PEAR を、現時点の最新版である 1.10.3 (2017-02-28) に更新する。
また、PEAR 1.10.3 を導入するために必要な依存パッケージもあわせて追加・更新する。


子チケット

Backport(バックポート) #4411: PEARパッケージのアップデートInvalid(無効)kaoru n

関係しているリビジョン

リビジョン 94beff59 (差分)
Youichi Kimuraほぼ7年前に追加

update PEAR 1.10.3 (refs #4176)

リビジョン 5b257b67 (差分)
Youichi Kimuraほぼ7年前に追加

update Structures_Graph 1.1.1 (refs #4176)

PEAR depends on this package.

リビジョン 9e4d2b5b (差分)
Youichi Kimuraほぼ7年前に追加

update Console_Getopt 1.4.1 (refs #4176)

PEAR depends on this package.

リビジョン c3b5048a (差分)
Youichi Kimuraほぼ7年前に追加

install XML_Util 1.4.2 (refs #4176)

PEAR depends on this package.

リビジョン 236171e4 (差分)
Youichi Kimuraほぼ7年前に追加

update PEAR_PackageFileManager2 1.0.4 (refs #4176)

リビジョン 5e0aa036 (差分)
Youichi Kimuraほぼ7年前に追加

update PEAR_PackageFileManager_Plugins 1.0.4 (refs #4176)

PEAR_PackageFileManager2 depends on this package.

リビジョン b5acc2b4 (差分)
Youichi Kimuraほぼ7年前に追加

install XML_Serializer 0.21.0 (refs #4176)

PEAR_PackageFileManager_Plugins depends on this package.

リビジョン 2fb33495 (差分)
Youichi Kimuraほぼ7年前に追加

install XML_Parser 1.3.7 (refs #4176)

XML_Serializer depends on this package.

リビジョン 8e76bdea (差分)
Youichi Kimuraほぼ7年前に追加

update Image_Transform 0.9.5 (refs #4176)

リビジョン 3d1d664c (差分)
Youichi Kimuraほぼ7年前に追加

update Calendar 0.5.5 (refs #4176)

リビジョン 75e65ae8 (差分)
Youichi Kimuraほぼ7年前に追加

drop OpenPNE_Amazon class and its dependencies (refs #4176)

リビジョン 3e3b4233 (差分)
Youichi Kimuraほぼ7年前に追加

update library dependencies for NOTICE (refs #4176)

履歴

#1 Youichi Kimuraほぼ7年前に更新

  • 題名PEAR 1.10.1 へのアップデート から PEAR 1.10.3 へのアップデート に変更

#3 Youichi Kimuraほぼ7年前に更新

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

下記 Pull Request にてアップデートを行いました。レビューをお願いします
https://github.com/openpne/OpenPNE3/pull/455

依存関係:

#4 Youichi Kimuraほぼ7年前に更新

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

PEAR 本体以外にも Image_Transform などアップデートが必要なパッケージが存在するため一旦差し戻します


画像サムネイルを表示する際に出力されるエラー:

Parse error: syntax error, unexpected 'new' (T_NEW) in /vagrant/lib/vendor/PEAR/Image/Transform.php on line 255

#5 Youichi Kimuraほぼ7年前に更新

  • 題名PEAR 1.10.3 へのアップデート から PEARパッケージのアップデート に変更

#4176-3 以外の PHP7 で動作しない PEAR パッケージ

  • Image_Transform 0.9.3 => 0.9.5
  • Calendar 0.5.4 => 0.5.5
  • OpenPNE_Amazon (パッケージ化されていない)
    • Services_Amazon 0.7.1 => PHP7非対応
      • HTTP_Request 1.4.2 => PHP7非対応

OpenPNE_Amazon クラスは dd0bf8b にて追加されており、 opReviewPlugin は現在の OpenPNE では動作しない状態のままとなっている (Doctrine への移行も行われていない)
opReviewPlugin 以外に依存している箇所が存在しなければ OpenPNE_Amazon ごと削除しても問題はなさそう。

#6 Youichi Kimuraほぼ7年前に更新

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

下記 Pull Request にてアップデートを行いました。レビューをお願いします
https://github.com/openpne/OpenPNE3/pull/455

依存関係:

  • PEAR 1.10.3
  • PEAR_PackageFileManager2 1.0.4
  • Image_Transform 0.9.5
  • Calendar 0.5.5
  • OpenPNE_Amazon (削除)
    • Services_Amazon (削除)
      • HTTP_Request (削除)

#8 Shinichi Urabeほぼ7年前に更新

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

修正内容は問題ないと思います (#4176-9 に修正必要事項記載しました)

  • #4112-5 において、 Net_UserAgent_Mobile はそのままとする対応かと考えますが、(OpenPNE上で呼び出される箇所はないため優先度は高くないですが)ScreenInfo.php が include された時点で動かなくなるため、その対策のチケット作成はしておいていいかもしれません
  • PHP 4 形式のコンストラクタ が非推奨で PHP Deprecated のエラーとなっているライブラリがいくつかありますが、念のためその対策のチケットは作っておいた方がいいかもしれません

memo

PHP7.0.17 において確認
以下のようなエラーがでる (PHP Deprecated は除外)

$ find lib/vendor -name *.php |xargs -I@ php -l @ 2>&1 1>/dev/null | grep -v "PHP Deprecated" 
PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in lib/vendor/PEAR/Net/UserAgent/Mobile/DoCoMo/ScreenInfo.php on line 2088

OSS 本体においては Net_UserAgent_Mobile_Common::getDisplay() が呼ばれないため、
lib/vendor/PEAR/Net/UserAgent/Mobile/DoCoMo/ScreenInfo.php もファイルも include されない

#9 Shinichi Urabeほぼ7年前に更新

lib/vendor/PEAR/Net/IPv4.php で PHP7 から廃止された eregi() が使われているため、対策は必要です (IPチェックで使われる)

#10 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.9.0 から OpenPNE 3.10.x に変更

#11 kaoru nほぼ4年前に更新

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

#4176-8 については別チケットにします。→ #4428

PEAR/Net/IPv4.php のバージョンアップについて
https://github.com/openpne/OpenPNE3/pull/595
にてプルリクエストしました

#12 kaoru nほぼ4年前に更新

  • 担当者Youichi Kimura から kaoru n に変更

#13 Rimpei Ogawaほぼ4年前に更新

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

PEAR/Net/IPv4.php のバージョンアップについて
https://github.com/openpne/OpenPNE3/pull/595
の内容は問題ないですが、
どの変更をどのバージョンでリリースしたかが追いにくいため、別チケットに分けましょう。

安定版として出た後なので、残り分は Enhancement ではなく Bug 扱いでもよいと思います。

#14 kaoru nほぼ4年前に更新

  • ステータスRejected(差し戻し) から Fixed(完了) に変更
  • 対象バージョンOpenPNE 3.10.x から OpenPNE 3.11.x に変更
  • 進捗率50 から 100 に変更

PEAR/Net/IPv4.php のバージョンアップについては別チケットにします→ #4440

#4428 #4440 以外はすでにリリース済みであるのでこのチケットは終了とします。

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