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)