graph = new GraphInternal; } /** * Get new package context. * * @return PackageContext */ public function getPackageContext(): PackageContext { return $this->graph->getPackageContext(); } /** * Add plugin. * * @param string $plugin Plugin to add * @param array $config Plugin configuration * @param PackageContext $ctx Package context * * @psalm-param class-string $plugin Plugin name * * @return Node[] */ public function addPlugin(string $plugin, array $config, PackageContext $ctx): array { return $this->graph->addPlugin($plugin, $config, $ctx); } /** * Flatten graph. * * @return SplQueue> */ public function flatten(): \SplQueue { return $this->graph->flatten(); } }