Sometimes you don't want transformers to run every time the command is executed. The shouldRun()
method allows you to add conditions that determine when a transformer should process content.
##Basic conditional logic
You can add an optional shouldRun
method to your transformer. If shouldRun
returns false
, the transformer is skipped:
class MonthlyReportTransformer extends Transformer
{
public function shouldRun(): bool
{
return $this
->transformationResult
->successfully_completed_at?
->diffInDays() > 30 ?? true;
}
public function transform(): void
{
}
public function getPrompt(): string
{
return "Generate a monthly report summary...";
}
}
This example only runs the transformation if it hasn't been successfully completed in the last 30 days.