用户:marioquartz/making-sessions

v0.1.1 2021-06-27 09:00 UTC

This package is auto-updated.

Last update: 2024-09-08 14:44:59 UTC


README

这个库只有一个目标:组织会话中的活动列表。您可以添加具有开始和结束时间或持续时间的“活动”。这个库是为了分离不同类型的活动。

这个库的起源是整理我在工作时采取的行动,每个项目都是不同类型的活动。有了这个库,我现在可以看到我在每个项目上花了多少时间。

使用这个库

您开始初始化Maker类并添加活动

use Marioquartz\MakingSessions\Maker;
use Marioquartz\MakingSessions\Event;

$maker=new Maker();
foreach ($list as $item) {
    $event=new Event();
    $event
        ->setStart($start) //start can be a timestamp or a DateInmutable
        ->setDuration(60) // you can set the duration or use setEnd()
        ->setType("example");
    $maker->add($event);
}

生成包含事件的会话列表很容易

$sessions=$maker->getSessions();

但是,“会话”是什么意思呢?“会话”是一系列“附近”的活动。在这个库的上下文中:一个活动的结束时间和下一个活动的开始时间之间的差异小于变量“timeMerge”。默认为300秒(5分钟)。您可以通过$maker->setTimeMerge($seconds)配置此行为。

$sessions现在有一个会话列表,可以迭代

foreach($sessions as $session) {
    echo $session->getStart(); // Start of the session returned as timestamp
    echo $session->getEnd(); //End as timestamp
    echo $session->getDuration() // Duration in seconds
    echo $session->getType(); // Type of the events inside
    foreach ($session->getEvents() as $event) {
        //events have the same functions: getStart(), getEnd(), getDuration() and getType()
    }
}

帮助

这是我第一个真正的库。我没有太多经验,所以当然这个库有很大的改进代码或实用性的空间。如果您是个善良的人,并且您有一个想法或者您发现了bug,我都非常愿意倾听。