A plugin can now bring a plugin.php that registers hooks, scheduled tasks, its own tables, public pages and admin screens. Failures stay contained to the plugin; a form on a plugin page can be submitted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
45 lines
847 B
PHP
45 lines
847 B
PHP
<?php
|
|
|
|
namespace App\Plugin;
|
|
|
|
use App\Ops\Tasks\Task;
|
|
|
|
/** Eine Aufgabe, die ein Plugin angemeldet hat, im Vertrag des Aufgabenplans. */
|
|
final class PluginTask implements Task
|
|
{
|
|
/** @param callable(): string $callback */
|
|
public function __construct(
|
|
private string $name,
|
|
private string $label,
|
|
private string $explanation,
|
|
private int $interval,
|
|
private $callback,
|
|
) {
|
|
}
|
|
|
|
public function name(): string
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
public function label(): string
|
|
{
|
|
return $this->label;
|
|
}
|
|
|
|
public function explanation(): string
|
|
{
|
|
return $this->explanation;
|
|
}
|
|
|
|
public function interval(): int
|
|
{
|
|
return $this->interval;
|
|
}
|
|
|
|
public function run(): string
|
|
{
|
|
return (string) ($this->callback)();
|
|
}
|
|
}
|