その他 > その他 > PHP 5.3.0リリース |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
zephy |
投稿日時: 2009/7/1 15:15
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2009/6/5 居住地: 投稿: 12 |
PHP 5.3.0リリース PHP5.3.0がリリースされたようです。
結構大きい修正が入ってるっぽいです。 時間が取れたらEC-CUBE2.4.0で影響でないか テストしてみたいと思ってはいるのですが、、、、 テストされた方っていらっしゃいますかね・・・? -------------------------------------------------- 参考: http://sourceforge.jp/magazine/09/07/01/0534256 http://php.net/releases/5_3_0.php http://www.php.net/ChangeLog-5.php#5.3.0 |
AMUAMU |
投稿日時: 2009/7/12 15:10
対応状況: −−−
|
神 ![]() ![]() 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: PHP 5.3.0リリース PHP5.3.0にEC-CUBE 2.4.1をインストールをしてみました。
以下のPHP側の機能修正に引っかかって問題が出る状態ですが、ちょっとした修正で動作は問題無さそうです。 問題の概要 (1)新しいエラーレベルでエラーがたくさん表示される。 (2)date関数におけるタイムゾーン設定が必須。 (1)のポイント 該当するPHP5.3の変更点 引用: PHP 5.3.0 では新しく二つのエラーレベルが加わりました。 E_DEPRECATED と E_USER_DEPRECATED です。 E_DEPRECATED エラーレベルは、 特定の機能が推奨されないことを示すのに使います。 E_USER_DEPRECATED エラーレベルは、ユーザー定義のコードで推奨されない機能、たとえば E_USER_WARNING のようなものを示すのに使うべきです。 EC-CUBEではE_DEPRECATEDがたくさん出ます。 主に同梱しているPEAR moduleが古い事に起因していますが、EC-CUBE自体にも以下の問題があります。 引用: 注意: PHP 5.3.0 以降、 regex 拡張モジュールは非推奨となりました。この関数をコールすると E_DEPRECATED が発生します。 これに引っかかります。 EC-CUBE内部を見るとereg_replaceが多用されてるのが原因ですね。 ここらへんは将来的には全面的に置き換えが必要かと思われますが今はエラー抑制で動作は問題無し. あと、その他の関数面で下記URLを見る限り http://www.php.net/manual/ja/migration53.deprecated.php ・fpdf内でset_magic_quotes_runtime関数 ・split関数 ・DBモジュール内でmysql_escape_string あたりが非推奨になっています。 とりあえず、これらに関してもE_DEPRECATEDが出ないように抑制する修正で動作的には問題無いです。将来的な問題はありますが・・・ まぁバージョン上がると非推奨じゃなくなることもあるので、何とも言えないですが (2)はちょっとめんどくさいです PHP5.3からは環境変数TZを使わなくなったようで、timzoneの設定を必須としています。 引用: date_default_timezone_get() ということで、date関係の関数がWARNINGを頻発し、環境によっては時間が正常に取れないっぽい? INI設定でdate.timezone を設定してもらうことを要求するのが正しい形になると思いますが、ここらへんも色々な環境に対応するにはどうなんだろう? 私はdefine.phpに
と足して取りあえず抑制しましたが、これは正当派じゃないよなーと思っています。
|
nanasess |
投稿日時: 2009/7/12 18:32
対応状況: −−−
|
神 ![]() ![]() 登録日: 2006/9/9 居住地: 投稿: 2280 |
Re: PHP 5.3.0リリース 引用:
JavaScript の Date#getTimezoneOffset() とかで取得して, ini_set に渡してやるしかないですかねぇ? 根本的には, DB の TIMESTAMP も時差を考慮しなきゃいけないでしょうし, 結構面倒ですね... |
tao_s |
投稿日時: 2009/7/12 22:18
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2008/8/20 居住地: 東京 投稿: 794 |
Re: PHP 5.3.0リリース EC-CUBEもそろそろPEAR DBとお別れですかね?
|
AMUAMU |
投稿日時: 2009/7/13 0:43
対応状況: −−−
|
神 ![]() ![]() 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: PHP 5.3.0リリース timezone ちょっと必要にも迫られて軽く調べたんですけど
深く考えずサーバ側として何に統一するんだ?って設定みたいです サーバープログラム側の内部処理ポリシーって感じかな? 表示上の時間をクライアントと合わせるとは意味が違うみたいです。(むしろdate.timezoneは変動させてはいけない?) 表示の時間を変動させるのはMVC的発想で言えば、View側(またはクライアントサイドのJavaScript等)の仕事ですよね、たぶん ※ちなみにiniでdate.timezoneを設定すると、少し高速化するらしいです。5.1の時に既に話題になっていたようです、この話題 さらにここらからは推測ですがdate関数とか遠い将来は無くしたいんじゃないかな〜?って思ってます 2038年問題って関係しますよね?確か。 5.1から増えたDateTime クラス、DateTimeZone クラス辺りを軸に使って将来への幅を持てよ、ってことなのか、どうなのか、さっぱりだ ![]()
|
nanasess |
投稿日時: 2009/7/13 10:31
対応状況: −−−
|
神 ![]() ![]() 登録日: 2006/9/9 居住地: 投稿: 2280 |
Re: PHP 5.3.0リリース 引用:
引用:
根本的には, タイムゾーンの内容によって処理を振り分けるコントローラの仕事ですね. 引用:
もしかしたら, DateTime クラスのソースコードに何か書いてあるかもしれませんね. php-dev の内容を漁ってみるとか... 僕も時間ができたら, ちょっと調べてみようと思います. |
ramrun |
投稿日時: 2009/8/21 19:08
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: PHP 5.3.0リリース XAMPP 1.7.2で確認してみました。
・Apache 2.2.12 (IPv6 enabled) + OpenSSL 0.9.8k ・MySQL 5.1.37 + PBXT engine ・PHP 5.3.0 MySQLだとインストール画面が表示されません。 止まる場所はsession_start()で、 session_set_save_handler()からPEAR::DB、 最終的にはSC_Inittial.phpの define("DEFAULT_DSN", "pgsql://nobody:password@localhost:5432/eccubedb"); で、MySQLのときにpgsqlだと止まるようです。 とりあえず赤字をmysqlに変更すればOKになります。 |
seasoft |
投稿日時: 2009/8/22 2:20
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/6/4 居住地: 投稿: 7334 |
Re: PHP 5.3.0リリース 引用:
どのバージョンの EC-CUBE かについても記述があると良いかと思います。 ちなみに、クリーンインストールでしょうか? もしも正式版ですと、再インストール時の DB 変更では、PHP のバージョンに依存せず、類似した不具合が発生したような記憶があります。EC-CUBEコミュニティ(eccube-comu) では、改修済みです。 あとは、PHP のモジュール選択に依存している確率もありそうですね。PHP のログが気になるところです。
|
ramrun |
投稿日時: 2009/8/22 12:29
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: PHP 5.3.0リリース ↓の件ですか?
http://svn.ec-cube.net/open_trac/changeset/17866 いまの時点でいうと eccube-2.4.1 eccube-comu-ver2-r18269 の両方です。 xampp自体を新規に解凍しています。xamppにpostgresqlは同梱されていません。 xampp 1.7.2のphp.iniはデフォルトで error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED display_errors = On ですが、この件のエラーらしきものは確認できませんでした。 また、先に書きましたがsession_start()で止まるため、インストール画面がそもそも表示されない状況です。 先のレスで 引用: define("DEFAULT_DSN", "mysql://nobody:password@localhost:5432/eccubedb"); にすればOKみたいに書きましたが、
がいいみたい。 Apacheが異常終了した〜 みたいなMicrosoftのエラーがでました。 詳細までは確認していません(汗)。 |
nachos |
投稿日時: 2009/8/31 2:59
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2009/8/31 居住地: 投稿: 1 |
Re: PHP 5.3.0リリース 初めまして。私もWindows XP + xampp 1.7.2にeccube-2.4.1をインストールしたところ、session_start()でとまって画面が表示されない状態です。
(その前にDeprecatedのエラーがたくさん出るところはエラーの箇所を修正しました。) 追跡してみたところ html/install/index.php: L23の require_once("../require.php"); の内部で html/require.php data/require_base.php $sessionFactory->initSession(); ときて、SC_SessionFactory_UseCookie::initSession()の中の session_start() でエラーメッセージも出ないまま処理が終わって、画面が真っ白になっています。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |