kamaro/时间表

生成每周时间表的包

dev-master / 1.0.x-dev 2019-07-11 16:36 UTC

This package is auto-updated.

Last update: 2024-09-12 04:13:53 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

此包通过提供课程、每门课程的课时和教师来帮助您生成学校时间表。它可以用于其他目的,但最初它是为学校构建的。

结构

build/
docs/
config/
src/
tests/
vendor/

需求

>= php 7.2

安装

通过Composer

$ composer require kamaro/timetable

特性

  • 课程
    • 课程名称
    • 教师姓名
    • 每天最大课时数
    • 每周最大课时数。
  • 计时器
    • 开始日期
    • 结束日期
    • 开始时间
    • 结束时间
  • 时间表
    • 生成空时间表
    • 生成时间表
    • 设置休息时间(待定)
    • 设置每周休息日(待定);

用法

    use Kamaro\TimeTable\Course;
    use Kamaro\TimeTable\TimeTable;
    use Kamaro\TimeTable\TimeFrame;

    // Generate fake courses
    $courses = [];
    for ($i = 0; $i < 10; ++$i) {
        $course = new Course();
        $course->setCourseName($fake->name);
        $course->setTeacherName($fake->name);
        $course->setMaxHoursPerDay(2);
        $course->setMaxHoursPerWeek(10);
        $courses[] = $course;
    }
    // Generate TimeTable
    $timeTable = (new TimeTable(
                            new TimeFrame() // TimeFrame
                        )
                 )->getTimeTable($courses);

    echo json_encode($timeTable);

将输出以下时间表

{
  "monday": {
    "8": {
      "hour": "8:00",
      "course": "Dr. Keven Spencer MD",
      "teacher": "Rita Reynolds"
    },
    "9": {
      "hour": "9:00",
      "course": "Dr. Keven Spencer MD",
      "teacher": "Rita Reynolds"
    },
    "10": {
      "hour": "10:00",
      "course": "Prof. Talon Wuckert DVM",
      "teacher": "Melba Hammes"
    },
    "11": {
      "hour": "11:00",
      "course": "Prof. Talon Wuckert DVM",
      "teacher": "Melba Hammes"
    },
    "12": {
      "hour": "12:00",
      "course": "Krystel Veum",
      "teacher": "Lily Smitham"
    },
    "13": {
      "hour": "13:00",
      "course": "Krystel Veum",
      "teacher": "Lily Smitham"
    },
    "14": {
      "hour": "14:00",
      "course": "Sarina Flatley II",
      "teacher": "Prof. Pasquale Fritsch"
    },
    "15": {
      "hour": "15:00",
      "course": "Sarina Flatley II",
      "teacher": "Prof. Pasquale Fritsch"
    },
    "16": {
      "hour": "16:00",
      "course": "Sandrine Wiegand",
      "teacher": "Henriette Kertzmann"
    },
    "17": {
      "hour": "17:00",
      "course": "Sandrine Wiegand",
      "teacher": "Henriette Kertzmann"
    },
    "18": {
      "hour": "18:00",
      "course": "Jimmie Fritsch",
      "teacher": "Mrs. Leonora Hill Jr."
    }
  },
  "tuesday": {
    "8": {
      "hour": "8:00",
      "course": "Dr. Keven Spencer MD",
      "teacher": "Rita Reynolds"
    },
    "9": {
      "hour": "9:00",
      "course": "Dr. Keven Spencer MD",
      "teacher": "Rita Reynolds"
    },
    "10": {
      "hour": "10:00",
      "course": "Prof. Talon Wuckert DVM",
      "teacher": "Melba Hammes"
    },
    "11": {
      "hour": "11:00",
      "course": "Prof. Talon Wuckert DVM",
      "teacher": "Melba Hammes"
    },
    "12": {
      "hour": "12:00",
      "course": "Krystel Veum",
      "teacher": "Lily Smitham"
    },
    "13": {
      "hour": "13:00",
      "course": "Krystel Veum",
      "teacher": "Lily Smitham"
    },
    "14": {
      "hour": "14:00",
      "course": "Sarina Flatley II",
      "teacher": "Prof. Pasquale Fritsch"
    },
    "15": {
      "hour": "15:00",
      "course": "Sarina Flatley II",
      "teacher": "Prof. Pasquale Fritsch"
    },
    "16": {
      "hour": "16:00",
      "course": "Sandrine Wiegand",
      "teacher": "Henriette Kertzmann"
    },
    "17": {
      "hour": "17:00",
      "course": "Sandrine Wiegand",
      "teacher": "Henriette Kertzmann"
    },
    "18": {
      "hour": "18:00",
      "course": "Jimmie Fritsch",
      "teacher": "Mrs. Leonora Hill Jr."
    }
  }

变更日志

有关最近更改的更多信息,请参阅变更日志

测试

$ composer test

贡献

有关详细信息,请参阅贡献指南行为准则

安全

如果您发现任何安全问题,请通过电子邮件kamaroly@gmail.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件