Re: PHPバージョンについて ( No.12 ) |
- 日時: 2024/02/22 18:23
- 名前: ちらみ◆kBt3KPJY0E ID:e3zpoUIo
- 検証とご報告をありがとうございます。
サーバ全体設定のphp.iniではdisplay_errorsはOFFなので、明示的にONの方以外はログに記録されてしまう事以外に問題は無いかなと思いました。
私自身、既にサポートの無い7.4を使い続けるのも気になっていたので今回の問い合わせを機に8.3への変更を決行したいと思っています。
|
Re: PHPバージョンについて ( No.13 ) |
- 日時: 2024/02/22 18:51
- 名前: 声優共演検索◆h/gfidhaZo ID:Y5krv/Xk
- 参照: http://seiyu.ie-t.net/
- ちらみ様の意向、理解しました。
時間が無くて結果報告に含めきれなかった「速度向上」についてですが、大きな数を文字列で計算するPHPの「BCMath」を使ったお手製ベンチマークで調べました。 結果は8.3の方が早い・安定する、でした。
お手製ベンチマークのURL(paiza.io)がこちらです(paiza.ioはBCMathモジュールがインストールされてない?ため動作しません) https://paiza.io/projects/RTYc6uDqDKu7Hy-BuEc_eg
■結果
PHP version 7.4.33 (Before)
7.3526668548584 sec. 9.1178860664368 sec. 6.4656918048859 sec. 7.8897581100464 sec. 10.860679149628 sec. 11.142512083054 sec. 6.9362699985504 sec. 6.3370621204376 sec. 15.720798015594 sec. 6.4699740409851 sec. -------------------- Min: 6.3370621204376 sec. Ave: 8.82932982444766 sec. Mid: 7.6212124824524 sec. Max: 15.720798015594 sec.
---
PHP Version 8.3.3 (After)
6.5621728897095 sec. 6.4722361564636 sec. 6.3993890285492 sec. 6.5084700584412 sec. 6.4470300674438 sec. 6.3642098903656 sec. 6.4180729389191 sec. 6.5234808921814 sec. 6.4500598907471 sec. 6.3397800922394 sec. -------------------- Min: 6.3397800922394 sec. Ave: 6.44849019050599 sec. Mid: 6.44854497909545 sec. Max: 6.5621728897095 sec.
PHP 7.4は速度に大きくバラつきがあるのに対して、PHP 8.3は安定して早い結果になりました、参考までに。
|
Re: PHPバージョンについて ( No.14 ) |
- 日時: 2024/02/22 22:29
- 名前: ちらみ◆kBt3KPJY0E ID:e3zpoUIo
- 詳細な検証ありがとうございます。
先ほど(2024/2/22 22:10頃)しれっとグローバルなPHPを7.4 --> 8.3に変更しました。 アップグレードしたのでほぼ無停止です。
時間ある時にお知らせページに報告しようと思います。
取り急ぎご連絡まで。
|
Re: PHPバージョンについて ( No.15 ) |
- 日時: 2024/02/22 22:40
- 名前: 声優共演検索◆h/gfidhaZo ID:Y5krv/Xk
- 参照: http://seiyu.ie-t.net/
- ご対応ありがとうございます。
Warning箇所を修正次第にPHP 8.3に変更しようと思っています。 X(旧Twitter)で教えて頂いた「Let's Encrypt」をオンにしてSSL化も予定しています。どうやら「http://」固定で書いてる箇所があるのでソースも修正しないといけないようです。
この度は色々とありがとうございました
|
Re: PHPバージョンについて ( No.16 ) |
- 日時: 2024/02/23 19:46
- 名前: Kou ID:6vKNkFjk
- 参照: https://tnsk.ie-t.net/
- 完全なるメモですが皆さんに共有したいのでここにお知らせします。
PHP8にアップデートしてから文字化けとSQL接続不可が発生するようになりました。 色々調べてみたところ、 ・PDO宣言を厳格にする ・php.iniのdefault_charsetが空欄からUTF-8になったので、ini_setを使用し、変更する の二つをしなければいけないことがわかりました。 自分のサイトもこれから変更していきます。
|
Re: PHPバージョンについて ( No.17 ) |
- 日時: 2024/02/23 20:42
- 名前: Kou ID:6vKNkFjk
- 参照: https://tnsk.ie-t.net/
- 今さっきini_setを使用してエンコーディングを書き換えたらメモリがいっぱいと言われました。
PHP7.4の時とプログラムは全く同じです。 どうすればいいでしょうか? わかる方がいましたらよろしくお願いします。
|
Re: PHPバージョンについて ( No.18 ) |
- 日時: 2024/02/23 21:21
- 名前: 声優共演検索◆h/gfidhaZo ID:/dsfjQYU
- 参照: http://seiyu.ie-t.net/
- Kou さんへ
私もPDOを使用していますが文字化けとSQL接続不可は発生しませんでした。 参考まで私のPDO宣言は以下の通りです。 https://paiza.io/projects/Le5M3NJ2FI0klVMwSkpF9w ※paiza.io 上では動作しません
PHP 8.0対応には興味があるので、よろしければ参考にされたサイトのURLなどを教えて頂けないでしょうか?
|
Re: PHPバージョンについて ( No.19 ) |
- 日時: 2024/02/24 08:30
- 名前: Kou ID:ly/AMgFs
- 参照: https://tnsk.ie-t.net/
- 自分が参考にしたサイトは以下の通りです。
https://tadtadya.com/php8-consistent-type-errors/ https://teratail.com/questions/118912
文字化けは 変更前:JF6DEUの備忘録 変更後:JF6DEU????????????? のようにUTF-8の日本語が認識できないみたいです。(よくわかりませんが...) ここの変換関連のプログラムは以下のようになっています。 https://paiza.io/projects/4c50WeqlL6XAK9U6kVH3vQ
SQLについては、PHP7.4までは独自クラスの「SQL」を作るためにclass SQLとだけしていたものをclass SQL extends PDOと変更したら動きました。
|
Re: PHPバージョンについて ( No.20 ) |
- 日時: 2024/02/24 18:20
- 名前: 声優共演検索◆h/gfidhaZo ID:m1WBZU0E
- 参照: http://seiyu.ie-t.net/
- Kou さん
参考にされたサイトを確認しました。
こちらのサイトでは「関数の引数と戻り値を厳密にでき、PHP 8.0からはそれを守らないとエラーになる」ということが書かれており、 文字化けとSQL接続不可とはあまり関係が無いように感じました。 https://tadtadya.com/php8-consistent-type-errors/
こちらのサイトはPHP 5.4→7.0アップグレードの話で、家Tサーバーさんに該当するかは不明です。 https://teratail.com/questions/118912 現在、家Tサーバーさんのコントロールパネルで設定できる「PHP 8.3 (Default)」と(救済策として残された)「PHP 7.4」は、 「default_charset」はどちらも「UTF-8」です。 アップグレード前の「PHP 7.4」は確認することができませんがおそらく変更されていない(UTF-8だった)と思われます。
変換関連のプログラムを拝見しました。 変換が必要ということはPHPファイルはUTF-8以外のエンコーディングを使われているのでしょうか? PHPファイルのエンコーディングがUTF-8であれば変換は特に必要ないかと思われます。 https://paiza.io/projects/4c50WeqlL6XAK9U6kVH3vQ
> SQLについては、PHP7.4までは独自クラスの「SQL」を作るためにclass SQLとだけしていたものをclass SQL extends PDOと変更したら動きました。 独自クラス「SQL」でPDOクラスを使われていたという認識で合っていますでしょうか? 独自クラスをPDOのサブクラスにしたら動作した、というのは少し引っかかります。 可能性としてはPDOのコンストラクタの記述が7.4までしか対応していないもので動作せず、 PDOの子クラスにしたことで親クラスのコンストラクタが呼ばれ8.3でも動作するようになった、ということが考えられます。
PDOコンストラクタの記述を載せて頂ければ何か分かるかもしれません(DB名やユーザ名・パスワードは伏せた形で)。
|
Re: PHPバージョンについて ( No.21 ) |
- 日時: 2024/02/24 23:35
- 名前: Kou ID:vBG20Tb.
- 確認しました。
関数関連だと思っていていたのですが...全然違いましたか... あと、default_charsetの件については自分もどうだろう...という感じです。 分かりませんがもしかしたら...という気持ちで投稿しました。
文字コード変換関連については、設定ファイルを別のPHPファイルで保存して、それを変換して使用している...という感じです。
>独自クラス「SQL」でPDOクラスを使われていたという認識で合っていますでしょうか? はい、その通りです... コードの公開についてはちょっと...という感じなので明日またメールを送ります。 その際にはよろしくお願いします。
|