プログラミング WEB

PHP8.2

PHP8.2

|ω・)そろり。

弊Webサーバ、PHP8.2に更新。

今回はSmartyの対応が早かったので、すぐに切り替えることができました。

Smarty4への対応

PHP8.2ではクラスの動的プロパティのチェックが厳しくなったようです。最新版である4.3.0に更新したところ、修正されておりました。

動的プロパティって個人的にバグを誘発しそうでちょっと気持ち悪いので、この変更は賛成だったりします。(´・ω・`)

KCFinderへの対応

PHP8.2において修正が1箇所必要になりました。

KCFinderはPHP7.2以降、バージョンアップで修正が必要な箇所が出てくることがあり、今までに修正した内容を下記のページにまとめました。

プログラミング WEB

PHP8.1とKCFinderのお話

|ω・)そろり。

先日の更新にて「PHP8.1でKCFinderが動かない」と報告しました。

重い腰を上げつつ少し調べてみたところ、KCFinderの一部ソースコードを変更することで動作することが分かりましたので、まとめました。

今回はまとめるのに少々手こずってしまい、なかなか時間がかかりました。

また、PHP8.0以降でKCFinderでの画像アップロードをできるようにするための対応方法について、こちらも合わせて読んでいただければと思います。

そろそろ潮時かと思い画像アップローダを自作しようと考えたところだったのですが、なんとか延命することができそうです。

めでたし、めでたし。(´・ω・)

プログラミング WEB

PHP8.1

PHP8.1

|ω・)そろり。

ここ数年、この時期といえばPHPの新しいバージョンがリリースされております。

というわけで、PHP8.1.0正式版がリリースされましたので早速サーバーにインストール。

とりあえず当Webサイトのテスト環境でエラー等が無いか確認、すると以下のような問題点が出てきました。

strftime() 非推奨関数に?

当Webサイト、テンプレートエンジンにSmarty3系を使っているのですが、Deprecatedエラーがちらほら出てきました。

最近リリースされたSmarty4.0.0でも同様のエラーが表示されましたが、GitHubを確認したところ把握されているようなので、そのうち修正されたバージョンがリリースされるのではないでしょうか。

KCFinder 動作しない?

バックエンドにKCFinderを使用しております。

こちらの環境ではPHP8.1ではとうとう動かなくなった模様です。

最初は画像のサムネイル部分に「原因不明のエラーです。」と表示され、一度閉じてしまうとKCFinderそのものが表示されなくなりました。

php.iniどこか設定間違えたかなぁ。本当に原因不明。(´・ω・`)

KCFinder 原因不明のエラー

おしまい

と、いうことで当Webサイトは当面PHP8.0での運用になりそうです。

KCFinderについてはもはや仕方のない話ですね。(´・ω・)

WEB プログラミング

KCFinderのお話。

|ω・)そろり。

先日、PHP8.0ベータ版でKCFinderから画像をアップロードできないことを書きました。

やはりこのまま使えなくなると困るので、重い腰を上げつつアップロードできるように変更しました。

もともとPHP7.2から非推奨の警告が出ていた部分だったので、ある程度の目星は立てていたところです。

ついでに変更箇所について簡単にまとめましたので、下記リンクからどうぞ。(´・ω・)

よもやま話

CKEditerで有名なCKFinder(ややこしい)のデモ版を入れてみましたが、一覧に画像が生成されなかったりアップロードできなかったりしたのでやめました。

インターフェースは良く出来てるけど、有償だしそこまですることもないよね~。(´・ω・`)

プログラミング

PHP8.0 (beta版)

PHP8.0 (beta版)

|ω・)そろり。

PHPの次期バージョン、8.0のbeta版が公開されておりましたのでビルドしてみました。

動作環境

  • CentOS 7 64bit
  • Apache 2.4.6
  • mod_fcgid (CGIモード)

configure オプション

基本的にPHP7.4.xと同じオプションでビルドできました。

弊Webサーバでは以下のオプションでPHPを動かしています。

./configure --prefix=/opt/php80beta --with-openssl --enable-mbstring --with-mysqli --with-pdo-mysql --with-pdo-sqlite --with-libdir=lib64 --enable-gd --enable-gd-jis-conv --with-jpeg --with-freetype --with-zlib-dir --enable-opcache --with-curl --enable-exif --enable-ftp --with-bz2 --with-gettext --with-xsl --with-imap --with-kerberos --with-imap-ssl --without-pear

インストール後にphp.iniも編集しますが、こちらは割愛。(´・ω・)

each関数の削除

PHP7.2から非推奨関数とされていたeach関数が削除されたようです。

バックエンド側にてKCFinderというファイル管理ツールを使用しているのですが、画像をアップロードしようとすると以下のようなエラー表示されます。

Fatal error: Uncaught Error: Call to undefined function kcfinder\each() ...

(長いので省略)

要するにアップロードできなくなりました。(´・ω・`)

KCFinderを使用する場合は7.4以下にしておいたほうが良いでしょう。

※なお、7.4のサポート期間が過ぎたら(セキュリティ的な意味で)諦めましょう。(´・ω・)

スポンサードリンク