FestinHegre/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php

88 lines
2.1 KiB
PHP
Raw Normal View History

2024-09-26 17:26:04 +02:00
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\DependencyInjection\Compiler;
/**
* Represents an edge in your service graph.
*
* Value is typically a reference.
*
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*/
class ServiceReferenceGraphEdge
{
private ServiceReferenceGraphNode $sourceNode;
private ServiceReferenceGraphNode $destNode;
private mixed $value;
private bool $lazy;
private bool $weak;
private bool $byConstructor;
public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, mixed $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false)
{
$this->sourceNode = $sourceNode;
$this->destNode = $destNode;
$this->value = $value;
$this->lazy = $lazy;
$this->weak = $weak;
$this->byConstructor = $byConstructor;
}
/**
* Returns the value of the edge.
*/
public function getValue(): mixed
{
return $this->value;
}
/**
* Returns the source node.
*/
public function getSourceNode(): ServiceReferenceGraphNode
{
return $this->sourceNode;
}
/**
* Returns the destination node.
*/
public function getDestNode(): ServiceReferenceGraphNode
{
return $this->destNode;
}
/**
* Returns true if the edge is lazy, meaning it's a dependency not requiring direct instantiation.
*/
public function isLazy(): bool
{
return $this->lazy;
}
/**
* Returns true if the edge is weak, meaning it shouldn't prevent removing the target service.
*/
public function isWeak(): bool
{
return $this->weak;
}
/**
* Returns true if the edge links with a constructor argument.
*/
public function isReferencedByConstructor(): bool
{
return $this->byConstructor;
}
}