sylius-code/multisport-endomondo-wrapper

endomondo API 包装器

1.0.5 2020-12-04 12:25 UTC

This package is not auto-updated.

Last update: 2024-09-27 13:06:21 UTC


README

描述

由于Endomondo即将退役,我决定创建一个基于Endomondo训练存档json文件来管理训练的工具。

快速入门

use SylusCode\MultiSport\EndomondoWrapper\WorkoutImporter;
use SylusCode\MultiSport\EndomondoWrapper\WorkoutParser as EndoParser;
use SylusCode\MultiSport\EndomondoWrapper\WorkoutTypeResolver as EndoTypeResolver;
use Symfony\Component\Finder\Finder;

$finder = new Finder();
$endoResolver = new EndoTypeResolver();
$endoParser = new EndoParser($endoResolver);
$endoWorkoutImporter = new WorkoutImporter($finder, $endoParser);

$path = 'endomondo-2020-11-18.zip';
$result = $endoWorkoutImporter->importFromZipFile($path);
  
var_dump($result);

// Example output:
array(1) {
[0]=>
object(SylusCode\MultiSport\Workout\Workout)#2064 (14) {
["time":"SylusCode\MultiSport\Workout\Workout":private]=>
NULL
["type":"SylusCode\MultiSport\Workout\Workout":private]=>
object(SylusCode\MultiSport\Workout\Type)#62947 (2) {
  ["id":"SylusCode\MultiSport\Workout\Type":private]=>
  int(5)
  ["name":"SylusCode\MultiSport\Workout\Type":private]=>
  string(9) "Siłownia"
}
["distance":"SylusCode\MultiSport\Workout\Workout":private]=>
float(0)
["calories":"SylusCode\MultiSport\Workout\Workout":private]=>
int(63)
["durationTotal":"SylusCode\MultiSport\Workout\Workout":private]=>
int(919)
["points":"SylusCode\MultiSport\Workout\Workout":private]=>
array(918) {
  [0]=>
  object(SylusCode\MultiSport\Workout\Point)#2066 (7) {
    ["time":"SylusCode\MultiSport\Workout\Point":private]=>
    object(DateTime)#2055 (3) {
      ["date"]=>
      string(26) "2020-11-17 09:16:32.000000"
      ["timezone_type"]=>
      int(2)
      ["timezone"]=>
      string(1) "Z"
    }
    ["latitude":"SylusCode\MultiSport\Workout\Point":private]=>
    NULL
    ["longtitude":"SylusCode\MultiSport\Workout\Point":private]=>
    NULL
    ["altitude":"SylusCode\MultiSport\Workout\Point":private]=>
    NULL
    ["distance":"SylusCode\MultiSport\Workout\Point":private]=>
    NULL
    ["heartRate":"SylusCode\MultiSport\Workout\Point":private]=>
    int(72)
    ["speed":"SylusCode\MultiSport\Workout\Point":private]=>
    NULL
  }
  ..

免责声明

基于存档json文件的Endomondo锻炼解析器。由于Endomondo在存档锻炼包中不提供带标签的工作锻炼,因此此解析器不包括标签。

下一步计划

添加单元测试