
| Current Path : /var/www/html/vendor/consolidation/annotated-command/src/Attributes/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/vendor/consolidation/annotated-command/src/Attributes/Topics.php |
<?php
namespace Consolidation\AnnotatedCommand\Attributes;
use Attribute;
use Consolidation\AnnotatedCommand\Parser\CommandInfo;
#[Attribute(Attribute::TARGET_METHOD)]
class Topics
{
/**
* @param string[] $topics
* An array of topics that are related to this command.
* @param $isTopic
* Mark this command as a topic itself.
* @param $path
* The path to a markdown file, when this command is itself a topic.
*/
public function __construct(
public ?array $topics = [],
public bool $isTopic = false,
public ?string $path = null,
) {
}
public static function handle(\ReflectionAttribute $attribute, CommandInfo $commandInfo)
{
$instance = $attribute->newInstance();
$commandInfo->addAnnotation('topics', $instance->topics);
if ($instance->isTopic || $instance->path) {
$commandInfo->addAnnotation('topic', $instance->path ?? true);
}
}
}