proměna v configu do komponenty

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

Čau všem,
mohl by mě někdo prosím poradit co dělám špatně, potřebuju z config.neon dostat proměnou do komponenty viz kod

<?php
namespace App\Components;

use Nette\Application\UI\Control;

class Komponenta extends Control {

    /** \Nette\Database\Context */
    private $db;

    /** @var array() */
    private $test;

    public function __construct(\Nette\Database\Context $db, array $test) {

    atd....

    }

public function render() {
         echo "test";
    }

}

interface IKomponenta
{
    /**
     * @return Komponenta
     */
    public function create();
}


//presenter

   /** @var \App\Components\IKomponenta @inject */
    public $komponenta;

    protected function createComponentKomponenta() {
        return $this->komponenta->create();
    }
?>

takto vypada config

<?php
parameters:
	polePromennych:
	promena: 1
	dalsiPromena: 2


php:
	date.timezone: Europe/Prague



application:
	errorPresenter: Error
	mapping:
		*: App\*Module\Presenters\*Presenter


session:
	expiration: 14 days
	autoStart: true


di:
	debugger: yes


services:
	- App\Components\IKomponenta(...,%polePromennych%)
?>

a vyskakuje mě hláška

Service ‚50_App_Components_IKomponenta‘: Parameter $test in App\Components\Komponenta::__construct() has no class type hint or default value, so its value must be specified.

Dík moc

ViPEr*CZ*
Člen | 813
+
-1
-

Ahoj, nepametám si … ale dle chyby zkus nastavit ještě defaultní hodnotu:

function __construct(\Nette\Database\Context $db, array $test = array()) {
tomfz6
Člen | 32
+
0
-

ok takto to sice běží ale pak v tom $test nejsou ty parametry

abc
Člen | 92
+
+1
-

@tomfz6
prohoď pořadí v konstruktoru
parametr přidej i do interface
a v neonu jen:

- App\Components\IKomponenta(%polePromennych%)
tomfz6
Člen | 32
+
0
-

dík všem už to frčí,asi nejlepší na pochopení je ten článek od Martina Z.