Nette doctrine sandbox a vlastní Repository

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

Používam https://github.com/…rine-sandbox a rád by som použil inject metódy pre každú Repository (MyRepository1, MyRepository2,…)
Vytvoril som si zložku repositories a v nej triedu:

//ArticleRepository.php
namespace Repositories;

class ArticleRepository extends \Nella\Doctrine\Repository {

}

V presenteri injectujem:

	/** @var \Repositories\ArticleRepository */
	protected $articleRepo;
	/**
	 * @param \Repositories\ArticleRepository
	 */
	public function injectArticleRepository(\Repositories\ArticleRepository $repo) {
		if ($this->articleRepo) {
    throw new Nette\InvalidStateException('ArticleRepo has already been set');
}
		$this->articleRepo = $repo;
	}

a config.neon obsahuje:

services:
		database: @doctrine.entityManager
		articleRepository:
			class: \Repositories\ArticleRepository( @doctrine.entityManager, ? )

Repository potrebuje entityManager a Doctrine\ORM\Mapping\ClassMetadata a práve neviem kde/ako zohnať ClassMetadata

Elfoslav
Člen | 15
+
0
-

Mohol som ešte 5 minút s napísaním tohto vlákna počkať :)

services:
		database: @doctrine.entityManager
		articleRepository:
			class: \Repositories\ArticleRepository( @doctrine.entityManager, @database::getClassMetadata('Article') )