Doctrine – viditelnost proměnných

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

Zdravím,

řeším momentálně Doctrine a viditelnost private proměnných.

Mám Entitu Articles.php v ní:

<?php

namespace App;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(options={"collate"="utf8_general_ci"})
 */
class Articles
{
	/**
	 * @ORM\Id
	 * @ORM\Column(type="integer",  unique=true)
	 * @ORM\GeneratedValue
	 */
	protected $id;


	/**
	 * @ORM\Column(type="string", length=256)
	 */
	protected $title;

	....
	....

V prestenteru si vytáhnu Entity:

$this->template->article = $this->em->getRepository(Articles::class)->findAll();

Poté když chci procházet $article v latte:

 <div n:foreach="$article as $art">
           {dump $art->title}
</div

Laděnka vrátí:

Cannot access protected property App\Articles::$title

Teď mám dotaz, jak tohle řešit. Vygenerovat settery / gettery pro proměnné?

MiNutCz
Člen | 1
+
+3
-

Na dotaz sis odpověděl sám na konci. Musíš si napsat vlastní gettery pro properties které budeš používat.

Pro rychlejší vývoj můžeš nastavit property jako protected a použít MagicAccessors a gettery si napsat až pak.

Dan Hundrt
Člen | 74
+
0
-

Díky za zprávu.

Gettery (podle zdejších příspěvků v diskuzi lepší řešení) si vygeneruju v IDE hromadně, jen mám dotaz, jak je vlastně použít spolu s Doctrine.

	/**
	 * @return mixed
	 */
	public function getTitle()
	{
		return $this->title;
	}

	/**
	 * @param mixed $title
	 */
	public function setTitle($title)
	{
		$this->title = $title;
	}

V latte:

$art->getTitle()

vrací to samé.

Díky moc za váš čas.

Oli
Člen | 1215
+
+2
-

Smazal jsi cache?

Dan Hundrt
Člen | 74
+
0
-

Nesmazal, smazani cache pomohlo.

Díky moc všem! :-)

Dan Hundrt
Člen | 74
+
0
-

Ještě bych měl poslední dotaz – je lepší v presenteru používat Doctrine „surově“ metodu getRepository() nebo si pripravit vlastní vlastní v modelu?

Moje předpoklady pro psaní vlastních metod:

  • Všechny metody na jednom místě
  • Přehlednost, čistčí presentery

Zápory:

  • „více psaní“