Project

General

Profile

Backport(バックポート) #4409

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

LExpress/symfony1 に移行する

Added by isao sano 14 days ago.

Status:
New(新規)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2017-03-27
Due date:
% Done:

0%


Description

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 からの移行の障壁をなるべく取り除くために、これまでと同様に単にソースコードをリポジトリ内に同梱することで対応する。

Also available in: Atom PDF