# php-weball **Repository Path**: walii/php-weball ## Basic Information - **Project Name**: php-weball - **Description**: 一个基于 ThinkPHP 5.1 构建的 NBA 篮球赛事与社交平台后端 API 系统,提供比赛数据、球队信息、球员统计、社区互动等全方位功能支持。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: PHP ## README # 🏀 We-Ball NBA赛事平台 [![PHP Version](https://img.shields.io/badge/php-%3E%3D7.0-8892BF.svg)](http://www.php.net/) [![ThinkPHP](https://img.shields.io/badge/thinkphp-5.1.x-orange.svg)](https://www.thinkphp.cn/) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE.txt) [![MySQL](https://img.shields.io/badge/mysql-5.7%2B-blue.svg)](https://www.mysql.com/) > 一个基于 ThinkPHP 5.1 构建的 NBA 篮球赛事与社交平台后端 API 系统,提供比赛数据、球队信息、球员统计、社区互动等全方位功能支持。 ## 📖 项目简介 We-Ball 是一个专注于 NBA 篮球赛事的综合管理平台后端系统。该项目为前端应用(Web/小程序)提供完整的 RESTful API 接口,支持实时比赛数据查询、球队/球员信息管理、用户社交互动、社区内容发布等核心功能。 **主要特点:** - 🎯 完整的赛事数据管理(赛程、比分、技术统计) - 👥 用户社交系统(好友、收藏、动态) - 💬 社区互动平台(帖子、评论、分类) - 📊 多维度数据统计(球队排名、球员数据) - 🖼️ 媒体文件上传与管理 ## ✨ 核心功能 ### 🏆 赛事管理 - 比赛列表查询与详情展示 - 实时赛程与历史比赛记录 - 比赛技术统计与数据分析 - 焦点赛事推荐 ### 🏟️ 球队管理 - 球队详细信息查询 - 球队积分榜排名 - 球队近期比赛记录 ### 👤 球员管理 - 球员个人资料查询 - 球员赛季数据统计 - 球员排行榜 ### 👥 用户系统 - 用户登录认证 - 个人收藏管理 - 好友系统(好友列表、好友详情、好友申请) - 个人动态发布与查看 - 用户帖子管理 ### 💬 社区功能 - 社区帖子列表与详情 - 帖子分类管理 - 帖子发布功能 - 社区互动 ### 📸 媒体服务 - 图片/视频文件上传 - 文件存储管理 - 媒体资源访问 ## 🛠️ 技术栈 ### 后端 - **框架**: [ThinkPHP 5.1 LTS](https://www.thinkphp.cn/) (PHP >= 7.0) - **数据库**: MySQL 5.7+ - **架构模式**: MVC + Service 层 - **API 风格**: RESTful JSON ### 服务器环境 - **Web 服务器**: Nginx 1.24+ / Apache 2.4+ - **PHP 版本**: PHP 7.0 - 8.0 - **扩展要求**: ext-json, ext-pdo, ext-mbstring ### 其他 - **依赖管理**: Composer - **日志规范**: PSR-3 - **自动加载**: PSR-4 ## 📁 项目结构 ``` php-we-ball/ ├── application/ # 应用目录 │ ├── index/ # 前台模块 │ │ ├── controller/ # 控制器层 │ │ │ ├── HomeController.php # 首页接口 │ │ │ ├── MatchController.php # 比赛接口 │ │ │ ├── TeamController.php # 球队接口 │ │ │ ├── PlayerController.php # 球员接口 │ │ │ ├── UserController.php # 用户接口 │ │ │ ├── CommunityController.php # 社区接口 │ │ │ └── MediaController.php # 媒体接口 │ │ ├── service/ # 业务逻辑层 │ │ │ ├── HomeService.php │ │ │ ├── MatchService.php │ │ │ ├── TeamService.php │ │ │ ├── PlayerService.php │ │ │ ├── UserService.php │ │ │ ├── CommunityService.php │ │ │ └── MediaService.php │ │ └── utils/ # 工具类 │ │ └── utils.php │ ├── common.php # 公共函数文件 │ └── provider.php # 服务提供者 ├── config/ # 配置目录 │ ├── app.php # 应用配置 │ ├── database.php # 数据库配置 │ ├── cache.php # 缓存配置 │ ├── session.php # Session配置 │ └── ... ├── route/ # 路由目录 │ └── route.php # 路由定义 ├── public/ # WEB根目录 │ ├── index.php # 入口文件 │ ├── files/ # 静态资源文件 │ └── static/ # 静态资源目录 ├── extend/ # 扩展类库 ├── runtime/ # 运行时目录 ├── vendor/ # Composer依赖 ├── think # 命令行工具 └── composer.json # Composer配置 ``` ## 🚀 快速开始 ### 环境要求 - PHP >= 7.0(兼容 PHP 8.0) - MySQL >= 5.7 - Composer - Nginx 1.24+ 或 Apache 2.4+ - PHP 扩展:pdo, pdo_mysql, mbstring, json, gd ### 安装步骤 #### 1. 克隆仓库 ``` bash git clone cd php-we-ball ``` #### 2. 安装依赖 ``` bash composer install ``` #### 3. 配置数据库 编辑 `config/database.php` 文件,修改数据库配置: ``` php return [ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'db_weball', // 修改为你的数据库名 'username' => 'root', // 修改为你的数据库用户名 'password' => 'root', // 修改为你的数据库密码 'hostport' => '3306', // 修改为你的数据库端口 'charset' => 'utf8', ]; ``` #### 4. 导入数据库 创建数据库并导入 SQL 文件(如有): ``` bash mysql -u root -p CREATE DATABASE db_weball CHARACTER SET utf8 COLLATE utf8_general_ci; USE db_weball; SOURCE path/to/your/database.sql; ``` #### 5. 配置 Web 服务器 **Nginx 配置示例:** ``` nginx server { listen 80; server_name your-domain.com; root /path/to/php-we-ball/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; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(ht|git) { deny all; } } ``` **Apache 配置:** 项目已包含 `.htaccess` 文件,确保 Apache 启用了 `mod_rewrite` 模块。 #### 6. 设置目录权限 ``` bash chmod -R 755 runtime/ chmod -R 755 public/ ``` #### 7. 启动服务 **开发环境(使用 PHP 内置服务器):** ``` bash php think run ``` 访问:`http://localhost:8000` **生产环境:** 配置好 Nginx/Apache 后,直接访问域名即可。 ## 📡 API 文档 ### 基础信息 - **Base URL**: `http://your-domain.com` - **响应格式**: JSON - **字符编码**: UTF-8 ### 统一响应格式 ``` json { "code": 200, "msg": "success", "data": {} } ``` ### 接口列表 #### 🏠 首页模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 首页信息 | GET | `/home/info` | 获取焦点赛事、轮播图、新闻资讯 | #### 🏀 比赛模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 比赛列表 | GET | `/match/list` | 获取所有比赛列表 | | 比赛详情 | GET | `/match/detail?matchId={id}` | 获取指定比赛详情 | | 近期比赛 | GET | `/match/recent?teamId={id}` | 获取球队近期比赛 | #### 🏟️ 球队模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 球队详情 | GET | `/team/detail?teamId={id}` | 获取球队详细信息 | | 球队排名 | GET | `/team/rank` | 获取球队积分榜 | #### 👤 球员模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 球员详情 | GET | `/player/detail?playerId={id}` | 获取球员个人信息 | | 球员赛季数据 | GET | `/player/season?playerId={id}` | 获取球员赛季统计 | | 球员排行 | GET | `/player/rank` | 获取球员排行榜 | #### 👥 用户模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 用户登录 | POST | `/user/login` | 用户登录认证 | | 用户收藏 | GET | `/user/collect?userId={id}` | 获取用户收藏列表 | | 好友列表 | GET | `/user/friend?userId={id}` | 获取用户好友列表 | | 好友详情 | GET | `/user/frienddetail?userId={id}&friendId={id}` | 获取好友详细信息 | | 好友申请 | GET | `/user/friendrequest?userId={id}` | 获取好友申请列表 | | 个人动态 | GET | `/user/moment?userId={id}` | 获取用户动态列表 | | 用户帖子 | GET | `/user/post?userId={id}` | 获取用户发布的帖子 | | 发布动态 | POST | `/user/submitmoment` | 发布个人动态 | #### 💬 社区模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 帖子列表 | GET | `/community/list` | 获取社区帖子列表 | | 帖子详情 | GET | `/community/postdetail?postId={id}` | 获取帖子详细内容 | | 分类列表 | GET | `/community/categories` | 获取帖子分类 | | 发布帖子 | POST | `/community/submitpost` | 发布社区帖子 | #### 📸 媒体模块 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 文件上传 | POST | `/media/upload` | 上传图片/视频文件 | ## ⚙️ 配置说明 ### 数据库配置 配置文件:`config/database.php` | 参数 | 说明 | 默认值 | |------|------|--------| | type | 数据库类型 | mysql | | hostname | 服务器地址 | 127.0.0.1 | | database | 数据库名 | db_weball | | username | 用户名 | root | | password | 密码 | root | | hostport | 端口 | 3306 | | charset | 字符集 | utf8 | | prefix | 表前缀 | 空 | | debug | 调试模式 | true | ### 应用配置 配置文件:`config/app.php` 主要配置项包括应用调试模式、默认时区、语言包等。 ### 缓存配置 配置文件:`config/cache.php` 支持文件缓存、Redis 等多种缓存驱动。 ## 🗄️ 数据库设计 ### 主要数据表(推测) - `matches` - 比赛信息表 - `teams` - 球队信息表 - `players` - 球员信息表 - `users` - 用户信息表 - `friends` - 好友关系表 - `collections` - 收藏记录表 - `moments` - 用户动态表 - `posts` - 社区帖子表 - `categories` - 帖子分类表 - `comments` - 评论表 - `media` - 媒体文件表 > 💡 提示:请根据实际 SQL 文件补充完整的数据库表结构文档 ## 🔧 开发指南 ### 代码规范 项目遵循 PSR-2 命名规范和 PSR-4 自动加载规范: - **类名**: 驼峰法,首字母大写(如 `UserController`) - **方法名**: 驼峰法,首字母小写(如 `getUserInfo`) - **文件名**: 与类名保持一致,`.php` 后缀 - **命名空间**: `app\index\controller` 或 `app\index\service` ### 添加新接口 1. **创建控制器方法** (`application/index/controller/`) ``` php public function newFeature(): Response { $service = new YourService(); $data = $service->getData(); return Response::create([ 'code' => 200, 'msg' => 'success', 'data' => $data, ], 'json'); } ``` 2. **编写业务逻辑** (`application/index/service/`) ``` php public function getData() { // 业务逻辑处理 return $result; } ``` 3. **添加路由** (`route/route.php`) ``` php Route::get('api/newfeature', 'index/YourController/newFeature'); ``` ### 调试技巧 - 开启调试模式:`config/database.php` 中设置 `'debug' => true` - 查看日志:`runtime/log/` 目录 - SQL 分析:启用 `'sql_explain' => true` ## 🚢 部署建议 ### 生产环境配置 1. **关闭调试模式** ``` php // config/database.php 'debug' => false, // config/app.php 'app_debug' => false, ``` 2. **优化缓存** 建议使用 Redis 缓存提升性能。 3. **安全加固** - 修改默认数据库密码 - 配置 HTTPS - 限制 CORS 跨域 - 启用输入验证和过滤 4. **性能优化** - 启用 OPcache - 配置 CDN 加速静态资源 - 数据库索引优化 - 定期清理 `runtime/` 目录 ### Docker 部署(可选) ``` dockerfile FROM php:7.4-fpm RUN docker-php-ext-install pdo_mysql mbstring gd COPY . /var/www/html WORKDIR /var/www/html RUN curl -sS https://getcomposer.org/installer | php \ && php composer.phar install --no-dev --optimize-autoloader EXPOSE 9000 CMD ["php-fpm"] ``` ## 📝 待办事项 - [ ] 完善单元测试 - [ ] 添加 API 速率限制 - [ ] 实现 JWT 身份认证 - [ ] 添加 WebSocket 实时推送 - [ ] 完善文档注释 - [ ] 支持多语言国际化 ## 📄 许可证 本项目遵循 Apache-2.0 开源协议发布。详见 [LICENSE.txt](LICENSE.txt) 文件。 ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 ## 🙏 致谢 感谢以下开源项目: - [ThinkPHP](https://www.thinkphp.cn/) - 优秀的 PHP 框架 - [Composer](https://getcomposer.org/) - PHP 依赖管理工具 - [MySQL](https://www.mysql.com/) - 强大的关系型数据库 --- ⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!