Problém s generováním kódu

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

Ahoj,

Aktuálně pracuji na generování určitého konfiguračního souboru. Vše si myslím že mám napsané tak jak by mělo, ale bohužel mi to vrací jen 1 řádek. Níže je můj kód. Prozatím si to jen dumpuji ale bez úspěchu. Vždy to vrátí jen 1 řádek.

Presenter

public function renderGenerateConfig()
 {

     $this->template->Budles = $this->GenerateModel->GenerateBudle();

     $Config = $this->GenerateModel->GenerateConfig();

     $this->template->GetConfig = $Config;

     foreach ($Config as $First => $Second)
     {
         dump($First);

         dump($Second);
     }

     $VariableList = array(
         '%sysname%' => 'Sysname Switche',
         '%domain%' => 'a1m.cz',
         '%vlan%' => '103',
     );

 }

Model

public function GenerateConfig()
{
    $GetBudle = $this->GenerateBudle();

    foreach ($GetBudle as $Budle)
    {
        $GetCommand = $this->GenerateCommand($Budle->id);

        foreach ($GetCommand as $Command)
        {
            $Config = array(
                $Budle->budle => array($Command->command));
            dump($Config);
            die;
            return $Config;
        }

    }
}

Aktuálně mi to vrací následující pole

array (1)
"sysname %sysname%" => array (1)
0 => "sysname …." (12)

Editoval Carson (30. 10. 2015 13:39)

webdata
Člen | 153
+
+1
-

No já osobně si myslím, že ve tříde GenerateModel metodě GenerateConfig dělá neplechy to

return $Config;

Dal bych ho až za foreach cyklus asi nějak takhle + úpravy v kódu viz comment:

public function GenerateConfig()
{
	$Config = array(); // + definice pole

    foreach ($this->GenerateBudle() as $Budle)
    {

		// Ja bych použil spíš něco jako array_map místo foreach,
        foreach ($this->GenerateCommand($Budle->id) as $Command)
        {
            $Config[] = array( // + index, jinak to pole v poli je zde docela zbytečné,
                $Budle->budle => array(
			$Command->command,
			),);
        }
    }

	return $Config;
}

Editoval webdata (30. 10. 2015 15:25)