用户:marioquartz / making-sessions
按会话分组活动
v0.1.1
2021-06-27 09:00 UTC
Requires
- php: >=7.4
Requires (Dev)
- nunomaduro/phpinsights: ^2.0
- squizlabs/php_codesniffer: ^3.0
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,我都非常愿意倾听。