19 declare(strict_types=1);
    27     public const TYPES = [
"Modules", 
"Services"];
    45         if (!in_array($type, self::TYPES)) {
    46             throw new \InvalidArgumentException(
    47                 "Invalid component type: $type"    82         foreach ($this->pluginslots as $id => $slot) {
    83             yield $slot->getId() => $slot;
    89         foreach ($this->pluginslots as $slot) {
    90             if ($slot->getId() === 
$id) {
   102         foreach ($this->pluginslots as $slot) {
   103             if ($slot->getId() === 
$id) {
   107         throw new \InvalidArgumentException(
   108             "No plugin slot $id at component {$this->getQualifiedName()}"   114         foreach ($this->pluginslots as $slot) {
   115             if ($slot->getName() === 
$name) {
   127         foreach ($this->pluginslots as $slot) {
   128             if ($slot->getName() === 
$name) {
   132         throw new \InvalidArgumentException(
   133             "No plugin slot $name at component {$this->getQualifiedName()}" 
hasPluginSlotName(string $name)
 
Simple value class for basic information about a pluginslot. 
 
getPluginSlotByName(string $name)
 
__construct(string $id, string $type, string $name, array &$pluginslots)
 
hasPluginSlotId(string $id)
 
getPluginSlotById(string $id)
 
Simple value class for basic information about a component.