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
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
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í :)