pylxu / cses-php
CSES access framework for PHP
1.0.0
2025-02-03 11:20 UTC
Requires
- php: ^7.4 || ^8.0
- symfony/yaml: ^5.4 || ^6.0
This package is not auto-updated.
Last update: 2025-07-08 11:27:51 UTC
README
用于解析和生成 CSES(Curriculum Schedule Exchange Standard)课程表格式的PHP库
*本仓库部分代码以及文件说明由DeepSeek提供支持
📦 安装
通过 Composer 安装:
composer require pylxu/cses-php
🚀 快速开始
解析CSES文件
use CSES\CSESParser; try { $parser = new CSESParser('schedule.cses.yml'); // 获取所有科目 $subjects = $parser->getSubjects(); // 获取星期一的课程 $mondayClasses = $parser->getScheduleByDay('mon'); } catch (RuntimeException $e) { echo "错误: " . $e->getMessage(); }
生成CSES文件
use CSES\CSESGenerator; $generator = new CSESGenerator(); // 添加科目 $generator->addSubject( '高等数学', '高数', '王教授', '逸夫楼203' ); // 添加课程安排 $generator->addSchedule('周一', 'mon', 'all', [ [ 'subject' => '高等数学', 'start_time' => '08:00', 'end_time' => '09:35' ] ]); // 保存文件 $generator->saveToFile('new_schedule.cses.yml');
📚 详细文档
CSESParser 类
方法 | 说明 |
---|---|
__construct(string $filePath) |
初始化解析器并加载文件 |
getSubjects(): array |
返回所有科目信息 |
getSchedules(): array |
返回完整课程表结构 |
getScheduleByDay(string $day): array |
按星期几获取课程(支持:mon/tue/wed/thu/fri/sat/sun) |
isCsesFile(string $filePath): bool |
静态方法验证文件格式 |
CSESGenerator 类
方法 | 说明 |
---|---|
addSubject(string $name, ?string $simplifiedName, ?string $teacher, ?string $room) |
添加科目信息 |
addSchedule(string $name, string $enableDay, string $weeks, array $classes) |
添加课程安排 |
generateCsesData(): array |
生成原始数组数据 |
saveToFile(string $filePath) |
保存为YAML文件 |
📝 数据格式说明
科目结构
subjects: - name: "科目全称" simplified_name: "简称" # 可选 teacher: "教师姓名" # 可选 room: "教室编号" # 可选
课程表结构
schedules: - name: "周一" enable_day: "mon" # 启用星期(小写缩写) weeks: "all" # 周次类型:all/odd/even classes: - subject: "科目名称" start_time: "08:00" end_time: "09:35"
⚠️ 注意事项
- 时间格式必须使用24小时制
enable_day
只接受标准英文缩写:mon/tue/wed/thu/fri/sat/sun- 周次类型
weeks
可选值:all
: 每周odd
: 单周even
: 双周
🤝 参与贡献
欢迎通过 Issue 报告问题或提交 Pull Request:
- Fork 项目仓库
- 创建特性分支 (
git checkout -b feature/your-feature
) - 提交更改 (
git commit -am 'Add some feature'
) - 推送分支 (
git push origin feature/your-feature
) - 创建 Pull Request
📄 许可证
本项目基于 MIT License 发布