Netbeans autocomplete Environment::setServiceAlias();

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

Zdravim,

viete niekto pomoct ako donutit Netbeans k napovede (autocomplete)

v bootstrap.php mam

<?php
$em = Doctrine\ORM\EntityManager::create($database, $config, $evm);
Environment::getContext()->addService('Doctrine\ORM\EntityManager', $em);
Environment::setServiceAlias('Doctrine\ORM\EntityManager', 'entityManager');
?>

a niekde v Presenteri:

<?php
$em = Environment::getEntityManager();
$em-> // tu napoveda nefuguje

/* @var $em \Doctrine\ORM\EntityManager */
$em = Environment::getEntityManager();
$em-> // tu napoveda funguje, ale pisat to stale je otravne

?>

Existuje moznost nastavit nieco podobne, ale pre metodu hned v bootstrap.php?

Filip Procházka
Moderator | 4668
+
0
-

Moc se mi nezamlouvá volání EntityManageru z Environment pořád dokola. Řešením je přiřadit si ho jako property presenteru

/**
 * @property Doctrine\ORM\EntityManager $em
 */
class BasePresenter extends Nette\Application\Presenter
{
	/** @var Doctrine\ORM\EntityManager */
	private $em;



	/**
	 * @return Doctrine\ORM\EntityManager
	 */
	public function getEm()
	{
		if ($this->em === NULL) {
			$this->em = Nette\Environment::getEntityManager();
		}

		return $this->em;
	}
}

můžeš si pak volat v presenterech hezky $this->em i s nápovědou a v komponentách buď uděláš to stejné, nebo budeš používat $this->presenter->em a máš i našeptávání :)