Description
概要
CDN対応および GitHub 移行作業の一環として、画像ファイルをコードリポジトリから分離する準備を行いました。
今後 public_html/img/ 以下を画像用リポジトリとして切り出すため、アプリケーション側でローカル画像実体に依存していた存在判定を整理しています。
CDN/nginx 配信に移行すると、PHP から public_html/img 配下の物理ファイルを file_exists() / is_file() / opendir() で確認する前提が崩れるため、通常表示ロジックでは「ファイルが存在すれば表示」ではなく、設定・DB・マスタなどの仕様データから表示対象を決める方針に変更しています。
詳細な調査結果は以下のレポートにまとめています。
image_file_existence_check_summary.html
対応内容
通常表示ロジックのローカル画像存在判定を排除
lib/public/Default.inc./img/toppic/./img/toppic/campaignのopendir()走査を廃止event_toppicの期間内データを元に表示画像を決定- 期間内データがない場合は既存の通常 toppic 画像からランダム表示
lib/class/controller/JrControllerRaidEvent.class.phpROOT_DIR/public_html/img/...に対するis_file()探索を廃止RaidMonsterConfig側に表示対象画像番号を定義し、設定から画像リストを生成する形に変更
public_html/template/Shop-Assortment.tpl- 現行環境に存在しない
/home/web/jrce/public_html/img/...前提の古い追加説明画像ブロックを対応済みとして整理
不要な管理画面ページを削除
現在使用していない管理画面ページだったため、画像存在確認処理ごと削除しました。
m_event_time_listm_new_island_imgm_new_island_img_swf
あわせて、以下も削除しています。
cpanel_html/index.phpの該当ルーティングlib/cpanel/m_top.incからの古い include- 対応する
inc/tpl - 新大陸画像確認専用の未使用定義
SWF 実体の存在判定を画像管理対象外として削除
cpanel_html/template/m_sales_gacha_check_page.tpl では、files/special_gacha/.../*.swf に対して file_exists() / exif_imagetype() を行っていました。
これは画像ファイルではなく SWF 実体の確認であり、今回の画像ファイル移行の管理対象外と判断したため、SWF ファイル自体の存在判定を削除しました。
対応しないもの
以下は今回の画像ファイル移行対応の対象外として整理しています。
lib/mobile/**- 未使用モバイル用コード
mobile_html/**- 未使用モバイル用コード
tool/event/test_*- 未使用テストコード
S_SetThumbnail()- ヤマダ/ゲソてん向けの参照導線が見つからず、コロプラ向け残存機能と判断
- 問い合わせ添付画像や一時ファイル管理
- リポジトリ内画像配信とは別の処理
- 既に
get_headers()で公開URLを確認している管理画面系 - ローカル物理ファイル依存ではないため、今回の主対象外
確認内容
- 通常表示の画像判定がローカル物理ファイルに依存していないこと
- 未使用の管理画面ページへ直接URLで到達できないこと
- 画像ではない SWF ファイルの存在判定を対象外にしていること
背景
本PRは、CDN対応および GitHub 移行作業の一環です。
今後、public_html/img/ 以下の画像ファイルをコードリポジトリから分離し、画像用リポジトリとして管理する予定です。その前提では、アプリケーションコードが public_html/img/ 配下のローカル物理ファイルを file_exists() / is_file() / opendir() で参照して表示可否を決める実装は維持できません。
そのため、本PRでは画像ファイル分離前の準備として、ローカル画像実体に依存した存在判定を排除・整理しています。
TODO
- cpanel ブランチを master にマージし、先にデプロイする
- cpanel 反映後に本PRを master へマージし、追加でデプロイする
- 本PRのデプロイ後、master ブランチを元に
public_html/img/以下を画像用リポジトリとコード用リポジトリへ分離する