http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2017-02-10T11:16:24Z
OpenPNE Issue Tracking System
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21714
2017-02-10T11:16:24Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>現状の OpenPNE を PHP 5.6 で動かした場合に発生する E_STRICT 等のエラーについて opIgnoreKnownErrorsPlugin にまとめています。<br /><a class="external" href="https://github.com/upsilon/opIgnoreKnownErrorsPlugin/blob/e13ef7e9/config/known_errors.yml">https://github.com/upsilon/opIgnoreKnownErrorsPlugin/blob/e13ef7e9/config/known_errors.yml</a></p>
<p>このうち、<code>Assigning the return value of new by reference is deprecated</code> のエラーが発生している箇所については PHP7 では全て <strong>Parse Error</strong> になります。</p>
<p>例:<br /><pre>
$ php7.0 symfony openpne:version
Core versions:
OpenPNE 3.8.23-dev
symfony 1.4.13
OpenPNE plugin versions:
PHP Parse error: syntax error, unexpected 'new' (T_NEW) in /home/upsilon/git/openpne3/master/lib/vendor/PEAR/PEAR/Config.php on line 650
</pre></p>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21718
2017-02-14T01:42:56Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><ul>
<li>PEAR のバージョンを 1.10.0 以上にアップデート
<ul>
<li><a href="http://blog.pear.php.net/2015/10/07/pear-1-10-0/" class="external">PEAR 1.10.0 with PHP7 support is out | PEAR Blog</a></li>
<li>2015-10-17 にリリースされている <a href="https://pear.php.net/package/PEAR/download/1.10.1" class="external">1.10.1</a> が現時点の最新</li>
</ul></li>
</ul>
<p>ここまでで <code>openpne:version</code> タスクは (E_WARNING 等は出るものの) 動く状態になる:</p>
<pre>
$ php symfony openpne:version
PHP Warning: ob_start(): function '' not found or invalid function name in /vagrant/lib/vendor/symfony/lib/config/sfApplicationConfiguration.class.php on line 155
Warning: ob_start(): function '' not found or invalid function name in /vagrant/lib/vendor/symfony/lib/config/sfApplicationConfiguration.class.php on line 155
PHP Notice: ob_start(): failed to create buffer in /vagrant/lib/vendor/symfony/lib/config/sfApplicationConfiguration.class.php on line 155
Notice: ob_start(): failed to create buffer in /vagrant/lib/vendor/symfony/lib/config/sfApplicationConfiguration.class.php on line 155
Core versions:
OpenPNE 3.9.0-dev
symfony 1.4.13
OpenPNE plugin versions:
opAuthMailAddressPlugin 1.3.5
PHP Warning: Declaration of sfPearRest::downloadHttp($url, $lastmodified = NULL, $accept = false) should be compatible with PEAR_REST::downloadHttp($url, $lastmodified = NULL, $accept = false, $channel = false) in /vagrant/lib/vendor/symfony/lib/plugin/sfPearRest.class.php on line 30
Warning: Declaration of sfPearRest::downloadHttp($url, $lastmodified = NULL, $accept = false) should be compatible with PEAR_REST::downloadHttp($url, $lastmodified = NULL, $accept = false, $channel = false) in /vagrant/lib/vendor/symfony/lib/plugin/sfPearRest.class.php on line 30
PHP Notice: Only variables should be passed by reference in /vagrant/lib/vendor/symfony/lib/plugin/sfSymfonyPluginManager.class.php on line 186
Notice: Only variables should be passed by reference in /vagrant/lib/vendor/symfony/lib/plugin/sfSymfonyPluginManager.class.php on line 186
PHP Notice: Only variables should be passed by reference in /vagrant/lib/plugin/opPluginManager.class.php on line 213
Notice: Only variables should be passed by reference in /vagrant/lib/plugin/opPluginManager.class.php on line 213
opSkinBasicPlugin unknown
</pre>
<ul>
<li>Net_UserAgent_Mobile をアップデート
<ul>
<li>ただしパッケージとしては未リリースのため GitHub から直接ソースコードを取得する必要がある</li>
<li><a class="external" href="https://github.com/iteman/net-useragent-mobile">https://github.com/iteman/net-useragent-mobile</a></li>
</ul>
</li>
<li><code>Doctrine_Query_Abstract::_preQuery()</code> メソッドを修正する
<ul>
<li>メソッドへの動的な呼び出しの評価順が変更されたことによるもの
<ul>
<li><a href="https://secure.php.net/manual/ja/migration70.incompatible.php#migration70.incompatible.variable-handling.indirect" class="external">変数やプロパティ、メソッドへの間接的なアクセスの扱いの変更</a></li>
</ul>
</li>
<li>LExpress/doctrine1 で行われている修正をコピー
<ul>
<li><a class="external" href="https://github.com/LExpress/doctrine1/commit/3d0af0c2#diff-2881ec7c910c6dba6cc97f98ad0dc8ae">https://github.com/LExpress/doctrine1/commit/3d0af0c2#diff-2881ec7c910c6dba6cc97f98ad0dc8ae</a></li>
</ul>
</li>
</ul>
</li>
<li><code>sfWebResponse::normalizeHeaderName</code> メソッドを修正する
<ul>
<li>PCRE の <code>/e</code> 修飾子は PHP 7.0.0 で既に廃止されている
<ul>
<li><a href="https://secure.php.net/manual/ja/migration70.changed-functions.php#migration70.changed-functions.core" class="external">PHP: 変更された関数 - Manual</a></li>
</ul>
</li>
<li>LExpress/symfony1 で行われている修正をコピー
<ul>
<li><a class="external" href="https://github.com/LExpress/symfony1/commit/b90e1254#diff-5c768e7cbd0a9a67fda77c457c0e866f">https://github.com/LExpress/symfony1/commit/b90e1254#diff-5c768e7cbd0a9a67fda77c457c0e866f</a></li>
</ul></li>
</ul></li>
</ul>
<p>ここまでで pc_frontend, pc_backend ともにログイン可能な状態になる。</p>
<p>ただし、PCRE の <code>/e</code> 修飾子の廃止により I18N 周りに不具合が生じているほか、dev 環境では E_NOTICE, E_WARNING エラーが多数出力されている。</p>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21719
2017-02-14T03:22:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>現時点で個人的に考えている PHP7 対応案</p>
<a name="開発版または次の安定版-OpenPNE-310-に向けて"></a>
<h4 >開発版、または次の安定版 (OpenPNE 3.10?) に向けて<a href="#開発版または次の安定版-OpenPNE-310-に向けて" class="wiki-anchor">¶</a></h4>
<ul>
<li><a href="https://github.com/LExpress/symfony1" class="external">LExpress/symfony1</a> への移行</li>
<li><a href="https://pear.php.net/package/PEAR/download/1.10.1" class="external">PEAR 1.10.1</a> へのアップデート
<ul>
<li>動作環境は PHP 5.4.0 以上</li>
</ul>
</li>
<li>upstream の更新が止まっている Net_UserAgent_Mobile について
<ol>
<li>Net_UserAgent_Mobile を現時点の最新版に更新した上で独自にメンテナンスする?</li>
<li>mobile_frontend を廃止する? (これを選ぶなら開発版のうちに決める必要がある)</li>
</ol></li>
</ul>
<a name="安定版-OpenPNE-38-および旧安定版-OpenPNE-36-について"></a>
<h4 >安定版 (OpenPNE 3.8) および旧安定版 (OpenPNE 3.6) について<a href="#安定版-OpenPNE-38-および旧安定版-OpenPNE-36-について" class="wiki-anchor">¶</a></h4>
<p>最低動作要件の変更を認めるかどうかで難易度が変わる</p>
<ul>
<li><a href="https://github.com/LExpress/symfony1" class="external">LExpress/symfony1</a> における修正点を <strong>部分的に</strong> 取り込み?
<ul>
<li>例えば <a class="external" href="https://github.com/LExpress/symfony1/commit/b90e1254">https://github.com/LExpress/symfony1/commit/b90e1254</a> は PHP 5.3.0 以上を前提とした (無名関数を使用している) コードになっているが、PHP 5.2 でも動くように手を加えるべきか?</li>
</ul>
</li>
<li><a href="https://pear.php.net/package/PEAR/download/1.10.1" class="external">PEAR 1.10.1</a> へのアップデート?
<ul>
<li>最低動作環境を PHP 5.4.0 以上に引き上げることになる</li>
<li>確認できた分だけでも修正の必要な箇所が多いため独自に修正するのは現実的ではない
<ul>
<li><a class="external" href="https://github.com/upsilon/opIgnoreKnownErrorsPlugin/blob/e13ef7e/config/known_errors.yml#L139-L317">https://github.com/upsilon/opIgnoreKnownErrorsPlugin/blob/e13ef7e/config/known_errors.yml#L139-L317</a></li>
</ul>
</li>
</ul>
</li>
<li>Net_UserAgent_Mobile をアップデート
<ul>
<li><a class="external" href="https://github.com/iteman/net-useragent-mobile">https://github.com/iteman/net-useragent-mobile</a> で公開されている未リリースのソースコード</li>
<li>明記されていないが、PHP 5.2 でも動く構文のみで書かれているように見える</li>
</ul></li>
</ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21806
2017-02-24T08:38:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>個人的に考えている PHP7 対応案その2</p>
<a name="安定版-OpenPNE-38-および旧安定版-OpenPNE-36-について"></a>
<h4 >安定版 (OpenPNE 3.8) および旧安定版 (OpenPNE 3.6) について<a href="#安定版-OpenPNE-38-および旧安定版-OpenPNE-36-について" class="wiki-anchor">¶</a></h4>
<p>サポート対象を PHP 5.6.x までとする(PHP7 対応を行わない)<br /><a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): PHP7対応のための修正を行う (Accepted(着手))" href="http://redmine.openpne.jp/issues/4112#note-3">#4112-3</a> の対応案は、次期安定版へのつなぎとしては負担が大きすぎるため。</p>
<a name="開発版または次の安定版-OpenPNE-310-に向けて"></a>
<h4 >開発版、または次の安定版 (OpenPNE 3.10?) に向けて<a href="#開発版または次の安定版-OpenPNE-310-に向けて" class="wiki-anchor">¶</a></h4>
<p>PHP 7 以降をサポート対象に追加し、PHP 5.4.0 未満は外す (ここは <a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): PHP7対応のための修正を行う (Accepted(着手))" href="http://redmine.openpne.jp/issues/4112#note-3">#4112-3</a> と同じ)</p>
<ul>
<li><a href="https://github.com/LExpress/symfony1" class="external">LExpress/symfony1</a> への移行</li>
<li><a href="https://pear.php.net/package/PEAR/download/1.10.1" class="external">PEAR 1.10.1</a> へのアップデート
<ul>
<li>動作環境は PHP 5.4.0 以上</li>
</ul>
</li>
<li>upstream の更新が止まっている Net_UserAgent_Mobile について
<ol>
<li>Net_UserAgent_Mobile を現時点の最新版に更新した上で独自にメンテナンスする?</li>
<li>mobile_frontend を廃止する? (これを選ぶなら開発版のうちに決める必要がある)</li>
</ol></li>
</ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21856
2017-03-03T06:27:43Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>3/3 の MTG で決定した内容</p>
<p>3/9 のリリース後に行う:</p>
<ul>
<li>master ブランチの置き換え (<a class="issue tracker-5 status-5 priority-4 priority-default closed" title="Task(タスク): 新masterブランチへの移行 (Fixed(完了))" href="http://redmine.openpne.jp/issues/4172">#4172</a>)
<ul>
<li>master => old-master にブランチ名を変更する</li>
<li>OpenPNE-3.8.23 から分岐して master ブランチを作成</li>
</ul></li>
</ul>
<p>それ以降:</p>
<ul>
<li>OpenPNE 3.10.x では、PHP7 対応に必要なもの以外で 3.8 と非互換なコミットは行わない (3.8 からの移行を行いやすくするため)</li>
<li>LExpress/symfony1 に移行する</li>
<li>Net_UserAgent_Mobile => 残す
<ul>
<li>User-Agent 判定、携帯個体識別番号の取得に使用する</li>
<li>symfony や PEAR と比べて置き換える負担は大きくないかも</li>
<li>→ mobile_fronend を削除するかどうかは、さらに次の安定版 (3.12.x?) に考える</li>
</ul></li>
</ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=21934
2017-03-15T08:31:39Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>関連している</strong> <i><a class="issue tracker-5 status-5 priority-4 priority-default closed" href="/issues/4172">Task(タスク) #4172</a>: 新masterブランチへの移行</i> を追加</li></ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=22112
2017-03-27T09:48:33Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>題名</strong> を <i>PHP7対応についての調査</i> から <i>PHP7対応のための修正を行う</i> に変更</li><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/22112/diff?detail_id=29654">diff</a>)</li><li><strong>対象バージョン</strong> を <i>OpenPNE 3.9.0</i> にセット</li></ul><p>当チケットを PHP7 対応に向けた修正の親チケットとして継続します</p>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=22114
2017-03-27T10:02:47Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/22114/diff?detail_id=29659">diff</a>)</li></ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=22860
2017-10-24T06:13:31Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>2017/10/24 時点の master ブランチにおける既知の問題:</p>
<ul>
<li><a class="issue tracker-2 status-5 priority-4 priority-default closed child parent" title="Enhancement(機能追加・改善): PEARパッケージのアップデート (Fixed(完了))" href="http://redmine.openpne.jp/issues/4176#note-9">#4176-9</a>: Net_IPv4 クラス内で、PHP7 で廃止された関数が使用されている
<ul>
<li>実際にエラーが発生するかは未確認</li>
</ul>
</li>
<li><a class="issue tracker-2 status-5 priority-4 priority-default closed child parent" title="Enhancement(機能追加・改善): LExpress/symfony1 に移行する (Fixed(完了))" href="http://redmine.openpne.jp/issues/4178#note-3">#4178-3</a>: symfony に対して未適用のパッチが存在する
<ul>
<li>過去に修正されたいくつかの不具合が再発している可能性がある (<a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Backport(バックポート): mail_to 関数を用いるときに空白が + に変換されてしまう (Fixed(完了))" href="http://redmine.openpne.jp/issues/3716">#3716</a>, <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Backport(バックポート): MySQL のレプリケーションを有効にすると、スレーブから i18nビヘイビアのフィールドのデータが取得できない (Fixed(完了))" href="http://redmine.openpne.jp/issues/3629">#3629</a>, <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug(バグ): サイドバナーのRSSリーダーでURLに特殊文字が含まれる場合に正しいRSSフィードが得られない (Fixed(完了))" href="http://redmine.openpne.jp/issues/2408">#2408</a>)</li>
</ul>
</li>
<li><a class="issue tracker-1 status-5 priority-4 priority-default closed child parent" title="Bug(バグ): Class 'sfPearRest13' not found のエラーによりプラグインのインストールに失敗する (Fixed(完了))" href="http://redmine.openpne.jp/issues/4187">#4187</a>: 一部のプラグインで <code>opPlugin:install</code> タスクの実行が失敗する
<ul>
<li>plugins ディレクトリに直接プラグインを追加する場合には影響はない</li>
</ul></li>
</ul>
OpenPNE 3 - Task(タスク) #4112: PHP7対応のための修正を行う
http://redmine.openpne.jp/issues/4112?journal_id=24272
2020-01-29T07:08:57Z
kaoru n
<ul><li><strong>対象バージョン</strong> を <i>OpenPNE 3.9.0</i> から <i>OpenPNE 3.10.x</i> に変更</li></ul>