> $circularDependencies * @param array $statistics */ public function __construct( private DependencyGraph $graph, private array $circularDependencies, private array $statistics ) { } /** * Get the dependency graph */ public function getGraph(): DependencyGraph { return $this->graph; } /** * Get circular dependencies * * @return array> */ public function getCircularDependencies(): array { return $this->circularDependencies; } /** * Get analysis statistics * * @return array */ public function getStatistics(): array { return $this->statistics; } /** * Check if there are any circular dependencies */ public function hasCircularDependencies(): bool { return ! empty($this->circularDependencies); } /** * Get the number of circular dependency cycles */ public function getCircularDependencyCount(): int { return count($this->circularDependencies); } /** * Convert to array for serialization * * @return array */ public function toArray(): array { return [ 'statistics' => $this->statistics, 'circular_dependencies' => $this->circularDependencies, 'has_circular_dependencies' => $this->hasCircularDependencies(), 'circular_dependency_count' => $this->getCircularDependencyCount(), 'graph' => $this->graph->toArray(), ]; } }