Extension s parametry a službou zároveň

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pavel Kravčík
Člen | 1196
+
0
-

Ahoj,

nedává mi to moc smysl a použití @internal funkcí mi nepřijde hezké… sice to funguje…

class Extension extends CompilerExtension
{
    public function loadConfiguration()
    {
        //$builder = $this->getContainerBuilder();
		//$this->compiler->loadDefinitions($builder, $this->loadFromFile(__DIR__ . '/config.neon')['services'], $this->name);

        $this->compiler->loadConfig(__DIR__ . '/config.neon');
        $this->compiler->processParameters();
    }
}

Jak správně ovlivnit parametry mimo extension? Klasický příklad s modulem. Přidám do projektu extension, natáhnu z privátního gitlabu a chci aby se mi zobrazil v menu bez jakéhokoliv psaní.

//Extension config
parameters:
	menu:
		#something
David Matějka
Moderator | 6445
+
0
-

cus, obvykle se to resi tak, ze mas bud

  1. nejakou sluzbu jako MenuItemsProvider, prip. MenuContributor (implementujici nejake rozhrani) a pak nejaka sluzba na spravu menu si vytahne providery/contributory, od kterych posbira ty polozky (tzn resit to v runtime)
  2. u jednodussich veci muze nejakou konfiguraci vracet primo extension, ktere implementuje nejake rozhrani a druhe extension si vytahne vsechny extensions, ktere ten interface implementuji a posbira od nich data (tzn resit to v compile time)
Pavel Kravčík
Člen | 1196
+
0
-

Díky. Někdy v budoucnu se pustím do jedničky.