PR

【6/1】リソースファイルの物理存在判定を削除 #4678

kouho opened this at 2026-05-25T14:36:23; closed

Description

opened by kouho at 2026-05-25T14:36:23; updated 2026-06-01T11:39:39

概要

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/campaignopendir() 走査を廃止
  • event_toppic の期間内データを元に表示画像を決定
  • 期間内データがない場合は既存の通常 toppic 画像からランダム表示
  • lib/class/controller/JrControllerRaidEvent.class.php
  • ROOT_DIR/public_html/img/... に対する is_file() 探索を廃止
  • RaidMonsterConfig 側に表示対象画像番号を定義し、設定から画像リストを生成する形に変更
  • public_html/template/Shop-Assortment.tpl
  • 現行環境に存在しない /home/web/jrce/public_html/img/... 前提の古い追加説明画像ブロックを対応済みとして整理

不要な管理画面ページを削除

現在使用していない管理画面ページだったため、画像存在確認処理ごと削除しました。

  • m_event_time_list
  • m_new_island_img
  • m_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/ 以下を画像用リポジトリとコード用リポジトリへ分離する

Comment

#46195 by kouho at 2026-05-25T14:41:59; updated 2026-05-25T14:41:59

@wada
レビューお願いいたします

Comment

#46202 by kouho at 2026-05-25T14:53:16; updated 2026-05-25T14:53:16

@noda
レビューお願いいたします

Comment

#46334 by wada at 2026-05-28T16:01:31; updated 2026-05-28T16:01:31

@kouho
ToppicImageSelectorClassLoader の対象になっているので、Default.increquire_once() はなくても大丈夫です。

wada add_label at 2026-05-28T17:05:59: コメントあり
noda add_label at 2026-05-29T11:12:47: 野田LGTM

Comment

#46364 by noda at 2026-05-29T11:12:50; updated 2026-05-29T11:12:50

@noda
確認OKです。

kouho change_title at 2026-06-01T09:55:18: 【5/28】リソースファイルの物理存在判定を削除 【6/1】リソースファイルの物理存在判定を削除

Comment

#46429 by kouho at 2026-06-01T10:41:03; updated 2026-06-01T10:41:03

@wada
確認ありがとうございます。以下指摘点を修正しました。
> ToppicImageSelector は ClassLoader の対象になっているので、Default.inc の require_once() はなくても大丈夫です。

また、レビュー後以下の対応を追加で行いました。

  • masterブランチをマージしてのコンフリクト解消
  • RaidMonsterConfig.php new_point_overview_image_numbers を今回仕様に対応
  • ルーティングを削除したm_new_island_img.incの削除

Comment

#46430 by wada at 2026-06-01T11:06:36; updated 2026-06-01T11:06:36

@kouho
確認OKです。

wada delete_label at 2026-06-01T11:06:42: コメントあり
wada add_label at 2026-06-01T11:06:45: 和田 LGTM
kouho merge at 2026-06-01T11:35:51: 【6/1】リソースファイルの物理存在判定を削除
kouho close at 2026-06-01T11:35:52: Close
kouho delete_branch at 2026-06-01T11:39:39: del_img_exist_check

Commit range

base6e82ca5a76add97dd23c679d3c677a26eef9292b
head0e215bc136e83a905ae62127dc56e3ab258dd143
base branchjolly/jr-web:master
head branchjolly/jr-web:del_img_exist_check

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed12 filesView patch
statusfile
modifiedcpanel_html/define_cpanel.inc
modifiedcpanel_html/index.php
deletedcpanel_html/template/m_new_island_img.tpl
modifiedcpanel_html/template/m_sales_gacha_check_page.tpl
addedlib/class/ToppicImageSelector.class.php
modifiedlib/class/controller/JrControllerRaidEvent.class.php
modifiedlib/conf/class/RaidMonsterConfig.class.php
deletedlib/cpanel/m_new_island_img.inc
deletedlib/cpanel/m_new_island_img_swf.inc
modifiedlib/cpanel/m_top.inc
modifiedlib/public/Default.inc
modifiedpublic_html/template/Shop-Assortment.tpl
Patch body is stored as a separate file to keep this page lightweight.