Zacinam s komponentami – pochopenie logiky

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

Caute snazim sa pochopopit komponenty…cize, vytvaram komponentu, ktora bude nacitavat z DB tabulky data a vykreli ich…ma to byt ToDo list

cize mam subory

TodoControl.php

class ToDoControl extends Control{



    public function render(){


	$template = $this->template;
	$template->setFile(__DIR__ . '/todo.latte');

	$template->render();


    }


}

a
todo.latte

problem je, ze neviem, ci nacitanie dat mam definovat v TodoControl alebo az priamo v presenteri v ktorom budem component vytvarat?

CZechBoY
Člen | 3608
+
0
-

Ty data budeš vypisovat v presenteru nebo v komponentě? Tahej si je tam, kde s nima pracuješ.

thm
Člen | 147
+
+3
-

@CZechBoY Předpokládám, že to chce asi v komponentě.

Nejlepší je předat si službu, která se ti stará o získání dat, konstruktorem komponenty.

class ToDoControl extends Control
{
	private $service;

	function __construct($service)
	{
		$this->service = $service;
	}


    public function render()
	{
    	$template = $this->template;
    	$template->setFile(__DIR__ . '/todo.latte');

		$teplate->todoList = $this->service->getTodoList();

    	$template->render();
    }
}