プロジェクト

全般

プロフィール

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

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

LExpress/symfony1 に移行する

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

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

100%


説明

Overview (概要)

現行の安定版である OpenPNE 3.8.x では symfony 1.4.13 を同梱している。
symfony 1.4 のソースコードには sfWebResponse::normalizeHeaderName() メソッドのように、PCRE 関数の /e 修飾子に依存しているコードがいくつか存在しており、このようなコードは PHP7 では動作しない (#4112-2)
また、symfony 1.4 に同梱されている Doctrine1 も PHP7 で動作しない問題を抱えている (#4112-2)
symfony1 は既にメンテナンスを終了しており (参照) 、今後も PHP7 への対応が行われることは無い。

一方で、symfony 1.4 から fork したプロジェクトとして LExpress/symfony1 が存在する。
この LExpress/symfony1 では上記に挙げている PHP7 における問題も既に修正が済んでおり、現在もなお開発が続けられている。
symfony 1.4 から PHP7 対応に必要な修正を独自に行うよりは、OpenPNE3 で使用する Web フレームワークを LExpress/symfony1 に移行することが望ましいと考える。

Spec (仕様)

OpenPNE の lib/vendor/symfony/ 以下に同梱されている symfony 1.4.13 (2011-08-05) を LExpress/symfony1 1.5.9 (2017-02-09) に変更する。

LExpress/symfony1 の README.md では Composer や git submodule によるインストールが説明されているが、少なくとも OpenPNE 3.10.x では OpenPNE 3.8 からの移行の障壁をなるべく取り除くために、これまでと同様に単にソースコードをリポジトリ内に同梱することで対応する。


子チケット

Backport(バックポート) #4429: LExpress/symfony1 に移行するInvalid(無効)kaoru n

関係しているリビジョン

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

replace with LExpress/symfony1 v1.5.9 (refs #4178)

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

apply patch to symfony for #1565 (refs #4178)

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

apply patch to symfony for #2408 (refs #4178)

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

apply patch to symfony for #3956 (refs #4178)

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

update library dependency for NOTICE (refs #4178)

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

use doctrine.configure event instead of ProjectConfiguration::configureDoctrine() (refs #4178)

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

define alias to Doctrine_Core class for backward compatibility (refs #4178)

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

use doctrine.filter_model_builder_options event instead of doctrine_model_builder_options config (refs #4178)

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

drop opJsonApiActions::renderJSON() method replaced by sfAction::renderJson() (refs #4178)

リビジョン a4b6b479 (差分)
isao sanoほぼ4年前に追加

(fixed #4178) repair the function that changes space into symbol +(fixes #3716, BP from #3383)

履歴

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

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

下記 Pull Request にて移行しました
https://github.com/openpne/OpenPNE3/pull/456

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

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

適用されていない個別パッチがあります。

  • 2742169
    • #3716: mail_to 関数を用いるときに空白が + に変換されてしまう
  • 63ead5f
    • #3629: MySQL のレプリケーションを有効にすると、スレーブから i18nビヘイビアのフィールドのデータが取得できない
  • 543738d
    • #2408: サイドバナーのRSSリーダーでURLに特殊文字が含まれる場合に正しいRSSフィードが得られない

また、LExpress/symfony1 の開発元に修正パッチを提供してもよいかもしれません。

#4 kaoru n約4年前に更新

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

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

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更
  • 担当者Youichi Kimura から kaoru n に変更
  • 543738d
    • #2408: サイドバナーのRSSリーダーでURLに特殊文字が含まれる場合に正しいRSSフィードが得られない

については https://github.com/openpne/OpenPNE3/pull/456 で適用済みでした。
https://github.com/openpne/OpenPNE3/pull/456/commits/3dfdc5f1a2c9b2e8c6093ff8aebf2c8c3c63cda1

残りの個別パッチ適用について
https://github.com/openpne/OpenPNE3/pull/597
にてプルリクエストしました

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

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

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

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

こちらのチケットも https://redmine.openpne.jp/issues/4176#note-13 同様にリリース済みのものと残りの分でチケットを分けましょう。

特にBackportの方で「LExpress/symfony1 に移行する」の変更全体が 3.10.1 で行われた変更のように見えるとよくないです。

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

  • ステータスRejected(差し戻し) から Fixed(完了) に変更
  • 進捗率50 から 100 に変更

残りの個別パッチ適用については別チケットにします→ #4442

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

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