7.4 KiB
酷冰甲 · 降温服企业官网
git clone ssh://git@118.25.40.197:2222/Lucanlee/coolcoth.com.git
参考 sqy58.com 风格,主打 降温服 / 冷却服定制,采用原生 PHP MVC 架构,内置 前后台,后台可设置 任意网页风格(颜色 / 字体 / 圆角 / 容器 / 导航样式 / 明暗模式 / 自定义 CSS)。
一、特性
- 原生 PHP MVC,零依赖、零 Composer,PHP 7.4+ 即可运行。
- 双存储引擎:文件模式(JSON,开箱即用)与 MySQL 模式(生产环境),通过一处配置切换。
- 完整前后台:
- 前台:首页 / 产品列表 / 产品详情 / 新闻列表 / 新闻详情 / 单页 / 联系我们(表单留资)。
- 后台:仪表盘 / 产品 / 分类 / 新闻 / 横幅 / 单页 / 站点设置 / 主题风格编辑器。
- 后台任意网页风格:6 套预设主题(海洋蓝 / 森野绿 / 极光紫 / 日落橙 / 极简黑金 / 冰晶青)一键套用,并支持自定义主色、辅助色、字体、圆角、容器宽度、导航样式、默认明暗模式与自定义 CSS,保存即生成
theme.css。 - 安全与体验:CSRF 防护、会话登录、明暗模式切换(localStorage 记忆)、玻璃拟态导航、磁吸按钮、滚动渐显动画、响应式布局。
二、环境要求
| 项目 | 要求 |
|---|---|
| PHP | ≥ 7.4(需 pdo_mysql 扩展用于 MySQL 模式;文件模式无需数据库) |
| Web 服务器 | 内置 php -S 可直接演示;生产建议 Nginx / Apache |
| 数据库(可选) | MySQL 5.7+ / MariaDB(仅 mysql 模式需要) |
| 扩展 | curl、mbstring、json、session(通常默认开启) |
三、快速开始(文件模式,开箱即用)
# 1. 进入项目
cd /path/to/project
# 2. 初始化数据(写入 storage/data/*.json 并生成主题样式)
php install/install.php
# 3. 启动内置演示服务器
php -S 127.0.0.1:8000 -t public
浏览器访问:
默认后台账号:
- 用户名:
admin - 密码:
admin888
首次部署后请务必修改后台密码(见
config/config.php的admin段,或在后台扩展账号体系)。
四、后台:设置任意网页风格
进入 后台 → 主题风格,即可:
- 一键套用预设:选择 6 套内置配色方案之一,点击「套用预设」即时预览。
- 精细化自定义:
- 主色 / 主色深 / 辅助色 / 点缀色
- 背景 / 表面 / 文字 / 次要文字 / 边框 / 导航背景
- 字体、圆角(px)、容器宽度(px)
- 导航样式:
center居中 /left左对齐 /transparent透明 - 默认明暗模式:
light/dark - 自定义 CSS(可注入任意样式覆盖)
- 保存即生效:点击「保存主题」后,系统重新生成
public/assets/css/theme.css,全站立即应用新风格,无需改代码、无需重启。
主题变量通过 CSS 变量注入前台(--c-primary 等),所有组件均基于这些变量构建,因此换肤是全局、即时、可逆的。
五、切换为 MySQL(生产环境)
-
在 MySQL 中创建数据库并执行建表脚本:
mysql -u root -p sqy_cooling < install/schema.sql -
修改
config/config.php:'driver' => 'mysql', 'db' => [ 'mysql' => [ 'host' => '127.0.0.1', 'port' => 3306, 'dbname' => 'sqy_cooling', 'user' => 'your_user', 'pass' => 'your_password', 'charset' => 'utf8mb4', ], // ... ], -
执行安装脚本,将种子数据写入 MySQL:
php install/install.php
数据访问层(app/Core/Model.php)会根据 driver 自动在 JSON 文件与 MySQL 表之间切换,业务代码无需改动。
六、目录结构
.
├── app/
│ ├── Core/ # 框架核心:App(路由) / View / Controller / Model / Theme / Helper / Db
│ ├── Controllers/ # 前台控制器:Home / Product / News / Page / Contact
│ ├── Controllers/Admin/ # 后台控制器:Dashboard / Product / Category / News / Banner / Page / Setting / Auth
│ └── Models/ # 数据模型(Category / Product / News / Page / Banner / AdminUser / Setting)
├── config/
│ └── config.php # 全局配置(driver / 后台路径 / 数据库 / 管理员)
├── install/
│ ├── install.php # 安装/重置脚本(写种子数据 + 生成 theme.css)
│ ├── seed.php # 种子数据
│ └── schema.sql # MySQL 建表语句
├── public/ # Web 根目录(入口 index.php)
│ ├── index.php
│ └── assets/
│ ├── css/ site.css / admin.css / theme.css(自动生成)
│ └── js/ main.js / admin.js
├── storage/
│ └── data/ # 文件模式数据存储(*.json)
└── views/ # 视图模板(layouts / 前台 / 后台)
七、生产环境部署
Nginx 示例
server {
listen 80;
server_name your-domain.com;
root /path/to/project/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.(?!well-known).* { deny all; }
}
Apache 示例(.htaccess 置于 public/)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
部署要点:
- Web 根目录必须指向
public/,避免暴露源码与storage/数据。- 确保
storage/data/与public/assets/css/可写(用于文件模式与主题生成)。- 生产环境建议
driver => 'mysql',并关闭 PHP 错误显示(display_errors = Off)。
八、数据备份与维护
- 文件模式:直接备份
storage/data/*.json即可。 - MySQL 模式:使用
mysqldump定期备份数据库。 - 重置/重新初始化:执行
php install/install.php(会覆盖现有数据,请先备份)。 - 重生成主题:修改主题设置保存,或删除
public/assets/css/theme.css后再次保存主题。
九、常见问题
Q:后台登录后跳回登录页?
A:确认 Cookie / Session 可写;文件模式无需数据库。检查 php -S 是否以 public 为根目录启动。
Q:修改主题后页面没变化?
A:清除浏览器缓存,确认 public/assets/css/theme.css 已更新;检查 storage/data/settings.json 中主题字段是否正确写入。
Q:数据文件突然变成 0 字节?
A:历史版本在写入含非法 UTF-8 字符时会触发 json_encode 失败并清空文件;当前版本已在 Model::write() 中修复(自动修正 UTF-8 且不会用失败结果覆盖文件)。如仍遇到,请检查输入是否为合法 UTF-8。
Q:如何换域名 / 子目录部署?
A:系统会自动根据 DOCUMENT_ROOT + SCRIPT_FILENAME 推导站点根路径,无需手动配置;若用反向代理请正确传递 Host 头。