Service ‚application.1‘: Class App\Model\ParameterRepository does not exist

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

Zdravím vás přátelé, mam drobný problém při tvorbě „configu“ z neonu. Snažím se dosáhnout toho, že si zákazník bude moct měnit určitě věci v configu.

Vytvořil jsem si proto ParameterRepository v App\Model:

namespace Model;

use Nette;


class ParameterRepository extends Nette\Object {

    private $parameters;

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

    public function getParameters() {
        return $this->parameters;
    }
}

V BasePresenter, Base pro componenty, etc.. využiju inject:

protected $parameters;
public function injectParameterRepository(Model\ParameterRepository $paramRepository){
            $this->parameters = $paramRepository->getParameters();
        }

Zaregistruju v services & definuju parametry(config.local.neon)

parameters:
	settings:
		topArticlesFilter: 6 months # nastavuje maximální stáří příspěvků v "Top články" widgetu
services:
	- Model\ParameterRepository(%settings%)

Problém je v tom, že končím na erroru Service 'application.1': Class App\Model\ParameterRepository does not exist hned v bootstrapu(řádek $container = $configurator->createContainer();). Mám pocit, že se bude jednat o nějakou prkotinu, ale přehrabuju se v tom už tak dlouho, že to nejspíš nevidím, díky za pomoc:)

Aurielle
Člen | 1281
+
+2
-

Třída ParameterRepository existuje v NS Model, nikoliv App\Model.

CZechBoY
Člen | 3608
+
+1
-

Tzn. buď dáš nahoru v tom Presenteru use Model; nebo do typehintu metodyinjectParameterRepository přidáš lomítko

protected $parameters;

public function injectParameterRepository(\Model\ParameterRepository $paramRepository)
{
	$this->parameters = $paramRepository->getParameters();
}
ikysek
Člen | 22
+
0
-

Aurielle napsal(a):

Třída ParameterRepository existuje v NS Model, nikoliv App\Model.

CZechBoY napsal(a):

Tzn. buď dáš nahoru v tom Presenteru use Model; nebo do typehintu metodyinjectParameterRepository přidáš lomítko

protected $parameters;

public function injectParameterRepository(\Model\ParameterRepository $paramRepository)
{
	$this->parameters = $paramRepository->getParameters();
}

Díky za rychlou pomoc a to skoro v 1 ráno:) Skvělá komunita.

Editoval ikysek (24. 3. 2016 12:53)