概要
Evolution CMS JP Edition 1.2.0J は、PHP 8 で安定動作することを最優先にした大型アップデートです。
前バージョンから続く互換性対応を DocumentParser のイベント順序やログ出力まで掘り下げました。
最大の注目点は、スニペットやプラグイン単位で「PHP エラーの検出レベル」を設定できるようになったことです。
これまでは画面上のエラーを抑えるために、グローバル設定の「PHP エラーの検出レベル」を「全て無視する」へ下げる対応に頼るケースがありましたが、リスクが高く非推奨です。
今回の追加仕様により、ユーザーがインストールした個別のスニペット・プラグインごとに一時的にレベルを緩めるだけで済みます。
さらに .env による設定外部化や、アップデートウィザードに統合した UTF-8MB4 変換フローで、
運用負荷と文字化けの不安をまとめて減らしました。以下では「追加・改良・廃止」を一目で追える形で整理しています。
新しい仕様
- スニペット/プラグイン単位の PHP エラーレベル設定
グローバル設定を下げなくても、問題のある要素だけ警告を一時的に抑えられます。修正後は通常レベルへ戻してください。 - Dotenv ローダーと env() ヘルパー
認証情報や URL を .env に移し、環境ごとに設定を切り替えやすくしました。スニペットからも安全に参照できます。 - 管理画面のツリーペインタイトル省略オプション
長いリソース名でも表示が崩れず、管理者の視認性が向上します。 - サイトエクスポート時の Basic 認証検知
ベーシック認証が有効だとエクスポートは必ず失敗するため、その理由を警告表示します。非公開にしたい場合は公開ステータスの「メンテナンスモード」を利用してください。
- PHP 8.4 互換性の再点検
E_STRICT の扱いを廃止し、未定義プロパティや古い構文を整理しました。Warning/Notice を抑えつつ最新 PHP でも安定動作します。 - UTF-8MB4 変換フローの整備
テーブルを UTF-8MB4 に変換することで、異体字(髙 など)や絵文字も欠損なく保存できます。 - MCPUK ファイルブラウザーのリファクタリング
内部構造をモダン化しました。 - セキュリティ属性の強化
Cookie に Secure / HttpOnly / SameSite を付与し、セッション検証とログ出力を見直しました。 - テンプレート/プラグイン API の整備
config()・entity()・doc() などのヘルパーを拡充し、グローバル変数を参照せずに情報を取得できます。
以下の項目が削除または置き換えられました。
- mysql.inc.php / mysql_ 系関数 → PHP7 以降で非推奨。mysqli.inc.php へ完全移行。
- strftime() / mb_strftime() → PHP 8.1 で非推奨。DateTime・date() に置き換え。
- @ 演算子によるエラー抑止 → 問題を隠す原因となるため、条件分岐・例外処理へ変更。
- 旧 sample.htaccess の冗長コメント → 初期適用性を高めるため、必要最小限に整理。
PHP 8 環境での動作確認
- テスト環境で PHP エラーレベルを「軽度の警告を無視」に設定し、Warning/Error の発生源を洗い出します。
- 問題のあるスニペットやプラグインのみ、一時的に検出レベルを緩めます。
- 修正が終わった要素から順に標準レベルへ戻します。
- アップデートウィザード内で UTF-8MB4 変換を案内します。異体字(タツサキ・ハシゴダカなど)や絵文字も欠損しません。
- 変換は任意です。アップデート前にバックアップとダウンタイムを確保し、環境に応じて判断してください。
- 新規構築ではインストーラーが自動的に最適な設定を選びます。
.env を使えば、データベース接続情報や公開 URL などをリポジトリ外に分離できます。スニペットからは env() ヘルパーで参照可能です。
コード: 全て選択
database
DB_HOST=localhost
DB_DATABASE=evo_jp
DB_USERNAME=evo_user
DB_PASSWORD=change-me
TABLE_PREFIX=modx_
application
MODX_BASE_URL=https://example.jp/
- .env は本番・ステージング・ローカルで内容を切り替え可能。リポジトリには含めず、各環境で安全に配布してください。
- config.inc.php と併用でき、段階的な移行にも対応。スニペットでは env('KEY', 'fallback') のように利用できます。
- DocumentParser / SubParser の未初期化プロパティを整理し、例外処理を強化。
- config()・entity()・doc() などのヘルパーを拡充し、グローバル変数を直接参照せず主要情報へアクセス可能。
- PHPMailer・FileUpload など外部ライブラリを更新し、PHP 8.4 に対応。
- キャッシュディレクトリのデフォルトを temp/cache/ に変更。旧 assets/cache/ との互換レイヤーを追加(アドオン開発は新パス前提)。
- 本番適用前に PHP 8.4 相当のテスト環境で動作確認し、config.inc.php と .env の整合性を確認します。
- アップデート後はグローバル設定を更新し、権限テーブルやプラグイン設定の不足を補います。
- UTF-8MB4 へ移行する場合は、ウィザードの案内に従って変換を実施。バックアップとリハーサルを忘れずに。
最新の Evolution CMS JP Edition 1.2.0J は、以下のリンクから入手できます。
https://github.com/modxcms-jp/evolution ... s/php8.zip
ZIP ファイルを展開すると、evolution-jp-php8/ ディレクトリ内に最新版のファイル一式が含まれています。
既存環境を上書きする前に、必ずバックアップを取得してください。