纯结构性重构,不改变任何功能。 - config.php 由 739 行缩减为 42 行,改为纯引导入口;新增 ROOT_DIR 常量 统一拼接绝对路径(lib/ 内模块的 __DIR__ 会指向 lib/,必须替换) - 新增 lib/ 五个模块 db.php / helpers.php / auth.php / movies.php / stats.php, 由 config.php 按 db → helpers → auth → movies → stats 顺序加载 - add.php、edit.php 各自约 80 行重复的 POST 处理改为调用 resolveCinemaId / resolvePersonIds / linkViewers / uploadImageFile / saveBase64Image / uploadMultiplePhotos / deleteStoredFile - cinemas.php、persons.php 中重复 4 次的颜色校验改用 normalizeHexColor() - toggleNewViewer / removeViewerRow / toggleNewCinema 下沉至 js/main.js, add.php 中的 removeViewer 统一更名为 removeViewerRow - 删除死代码:imageUrl()(全项目无调用);cinemas.php 配色数组中本就会被 array_slice 丢弃的 extra 颜色逻辑,简化为单条扁平 50 元素数组 - README 目录结构补充 lib/ 说明 验证方式:以便携 PHP 8.4 搭建 A/B 回归环境,播种固定数据后遍历 47 个 GET/POST 端点录制「状态码 + 响应体」。重构前后 42 个逐字节相同、2 个仅 上传文件名时间戳不同、3 个差异均为内联脚本下沉(已单独校验函数体逐字符 等价,剥离脚本后 HTML 标记完全一致)。24 个 PHP 文件语法检查全部通过。
43 lines
1.4 KiB
PHP
43 lines
1.4 KiB
PHP
<?php
|
|
// ============================================
|
|
// 文件: config.php
|
|
// 说明: 应用引导入口。负责错误报告、会话、路径常量、上传目录,
|
|
// 并加载 lib/ 下的各功能模块,最后初始化数据库。
|
|
// 所有页面统一通过 require_once 'config.php' 引入本文件。
|
|
// ============================================
|
|
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 1);
|
|
|
|
session_start();
|
|
|
|
// 项目根目录(lib/ 下的模块统一用它拼接绝对路径)
|
|
define('ROOT_DIR', __DIR__);
|
|
|
|
// 数据库路径
|
|
define('DB_PATH', ROOT_DIR . '/db/movies.db');
|
|
|
|
// 上传目录
|
|
define('UPLOAD_DIR', ROOT_DIR . '/uploads/');
|
|
define('POSTER_DIR', UPLOAD_DIR . 'posters/');
|
|
define('TICKET_DIR', UPLOAD_DIR . 'tickets/');
|
|
define('PHOTO_DIR', UPLOAD_DIR . 'photos/');
|
|
define('AVATAR_DIR', UPLOAD_DIR . 'avatars/');
|
|
|
|
// 创建上传目录
|
|
foreach ([POSTER_DIR, TICKET_DIR, PHOTO_DIR, AVATAR_DIR] as $dir) {
|
|
if (!is_dir($dir)) {
|
|
mkdir($dir, 0755, true);
|
|
}
|
|
}
|
|
|
|
// ===== 功能模块 =====
|
|
require_once ROOT_DIR . '/lib/db.php'; // 数据库连接与初始化
|
|
require_once ROOT_DIR . '/lib/helpers.php'; // 通用工具函数
|
|
require_once ROOT_DIR . '/lib/auth.php'; // 登录校验与账号管理
|
|
require_once ROOT_DIR . '/lib/movies.php'; // 电影 / 影院 / 搜索
|
|
require_once ROOT_DIR . '/lib/stats.php'; // 统计与年度报告
|
|
|
|
// 初始化数据库
|
|
initDB();
|