core/source/sources/_factory.php

44 lines
526 B
PHP
Raw Normal View History

2025-09-09 12:07:53 +02:00
<?php
2025-09-16 12:05:35 +02:00
namespace davina\sources;
2025-09-09 12:07:53 +02:00
2025-09-21 18:49:03 +02:00
require_once(DIR_LOGIC . '/sources/_interface.php');
2025-09-16 12:48:45 +02:00
require_once(DIR_LOGIC . '/sources/ics_feed.php');
2025-09-09 12:07:53 +02:00
/**
*/
function make(
2025-09-21 13:27:37 +02:00
string $kind,
$data
2025-09-09 12:07:53 +02:00
) : interface_source
{
2025-09-21 13:27:37 +02:00
switch ($kind)
2025-09-09 12:07:53 +02:00
{
case 'ics_feed':
{
2025-09-09 23:17:19 +02:00
return (
new class_source_ics_feed(
2025-09-21 13:27:37 +02:00
$data['url'],
2025-09-21 18:49:03 +02:00
$data['lifetime'],
$data['conflate']
2025-09-09 23:17:19 +02:00
)
);
2025-09-09 12:07:53 +02:00
}
default:
{
2025-09-09 23:17:19 +02:00
throw (
new \Exception(
\sprintf(
'unhandled source kind: %s',
2025-09-21 13:27:37 +02:00
$kind
2025-09-09 23:17:19 +02:00
)
)
);
2025-09-09 12:07:53 +02:00
break;
}
}
}
2025-09-21 13:27:37 +02:00
?>