New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

メンテナンス機能を追加 #3998

Merged
merged 7 commits into from Nov 20, 2018

Conversation

Projects
None yet
2 participants
@okazy
Copy link
Contributor

okazy commented Nov 19, 2018

概要(Overview・Refs Issue)

  • プラグインのインストール/有効処理や本体のアップデート処理でアクセスがあるとキャッシュが中途半端に生成されてしまいシステムエラーとなる可能性がある
  • プロジェクトのルートディレクトリに.maintenanceファイルを設置するとメンテナンス画面に切り替わる機能を追加

方針(Policy)

  • 最低限のメンテナンス機能のみ実装
  • wordpressのメンテナンス機能を参考に.maintenanceファイルの有無で状態を切り替えるようにした
  • 管理画面はプラグインの操作等のため接続可能とした
  • メンテナンス画面では503のステータスを返す

使い方

  • メンテナンスモード開始
    • EC-CUBEのルートディレクトリに .maintenance ファイルを作成
touch {ec-cubeのルートディレクトリ}/.maintenance
  • メンテナンスモード解除
    • EC-CUBEのルートディレクトリの .maintenance ファイルを削除
rm -f {ec-cubeのルートディレクトリ}/.maintenance
  • メンテナンスページのデザイン変更
    • EC-CUBEのルートディレクトリの maintenance.php ファイルを編集

実装に関する補足(Appendix)

  • フロント画面はsymfonyのキャッシュが生成されないよう、index.phpファイルにメンテナンス画面へ切り替える処理を記載した
  • フロント画面のテンプレート切り替えに対応
  • 管理画面のURL変更に対応
  • 必要な環境変数をインストール時に.envへ追加する処理を追加

テスト(Test)

  • サブディレクトリあり/なしでテスト
  • テンプレートを切り替えてテスト
  • Webインストーラでテスト
  • commandでのインストールでテスト

相談(Discussion)

  • メンテナンス中はデバッグツールバーが使えないが対応は必要か

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 環境変数に 'ECCUBE_ADMIN_ROUTE', 'ECCUBE_TEMPLATE_CODE' を定義する必要があります
  • 既存機能の仕様変更
  • フックポイントの呼び出しタイミングの変更
  • フックポイントのパラメータの削除・データ型の変更
  • twigファイルに渡しているパラメータの削除・データ型の変更
  • Serviceクラスの公開関数の、引数の削除・データ型の変更
  • 入出力ファイル(CSVなど)のフォーマット変更

okazy added some commits Nov 19, 2018

feat メンテナンス機能を追加
プロジェクトのルートディレクトリに.maintenanceファイルを設置するとメンテナンス画面に切り替わる

@okazy okazy added this to the 4.0.1 milestone Nov 19, 2018

@okazy okazy added the enhancement label Nov 19, 2018

@okazy okazy changed the title [WIP]メンテナンス機能を追加 メンテナンス機能を追加 Nov 19, 2018

Show resolved Hide resolved maintenance.php Outdated
@@ -0,0 +1,37 @@
<!doctype html>
<?php /*
This file is part of EC-CUBE

This comment has been minimized.

@chihiro-adachi

chihiro-adachi Nov 20, 2018

Contributor

直接アクセスされた場合に正常に表示できないので、トップページにリダイレクトしたほうがよいかもしれません。

This comment has been minimized.

@chihiro-adachi

chihiro-adachi Nov 20, 2018

Contributor

こちらはハンドリングが難しいので、可能であればで大丈夫です。

This comment has been minimized.

@okazy

okazy Nov 20, 2018

Contributor

サブディレクトリの場合にハンドリングが難しいので解決できていません。

Show resolved Hide resolved maintenance.php
Show resolved Hide resolved index.php Outdated

@chihiro-adachi chihiro-adachi merged commit df54b74 into EC-CUBE:4.0 Nov 20, 2018

1 check passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment