1.2.0J ベータです

プログラム(機能)関連の開発の話題
返信する
アバター
yama
管理人
記事: 3253
登録日時: 2009年7月29日(水) 02:50

1.2.0J ベータです

投稿記事 by yama »

Evolution CMS JP Edition 1.2.0J ベータ

概要
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 環境での動作確認
  1. テスト環境で PHP エラーレベルを「軽度の警告を無視」に設定し、Warning/Error の発生源を洗い出します。
  2. 問題のあるスニペットやプラグインのみ、一時的に検出レベルを緩めます。
  3. 修正が終わった要素から順に標準レベルへ戻します。
UTF-8MB4 移行メモ
  • アップデートウィザード内で UTF-8MB4 変換を案内します。異体字(タツサキ・ハシゴダカなど)や絵文字も欠損しません。
  • 変換は任意です。アップデート前にバックアップとダウンタイムを確保し、環境に応じて判断してください。
  • 新規構築ではインストーラーが自動的に最適な設定を選びます。
.env サンプルと活用のヒント
.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/ との互換レイヤーを追加(アドオン開発は新パス前提)。
アップデート手順
  1. 本番適用前に PHP 8.4 相当のテスト環境で動作確認し、config.inc.php と .env の整合性を確認します。
  2. アップデート後はグローバル設定を更新し、権限テーブルやプラグイン設定の不足を補います。
  3. UTF-8MB4 へ移行する場合は、ウィザードの案内に従って変換を実施。バックアップとリハーサルを忘れずに。
ダウンロード
最新の Evolution CMS JP Edition 1.2.0J は、以下のリンクから入手できます。
https://github.com/modxcms-jp/evolution ... s/php8.zip

ZIP ファイルを展開すると、evolution-jp-php8/ ディレクトリ内に最新版のファイル一式が含まれています。
既存環境を上書きする前に、必ずバックアップを取得してください。
返信する