předání parametrů komponentě

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

Ahoj,

vytvářím komponentu na kontaktní form.

<?php

interface FormContactFactory {

    /**
     * @return  FormContact
     */
    public function create();
}

class FormContact extends Component {

    /** @var \Nette\Mail\IMailer  */
    private $mailer;

	//    public function __construct($email, \Nette\Mail\IMailer $mailer) { - toto nejde
    public function __construct(\Nette\Mail\IMailer $mailer) {
        parent::__construct(); // vždy je potřeba volat rodičovský konstruktor
        $this->mailer = $mailer;
    }

    public function render() {
        $this->template->setFile("../templates/@components/forms/formContact/formContact.latte");
        $this->template->render();
    }

    protected function createComponentForm() {
        //
    }

    public function formProcess(Form $form) {
       //
    }

}

?>

config

<?php
parameters:
	contactEmail: "email@email.cz"

- FormContactFactory(%contactEmail%)
?>

A potřeboval bych abych v configu měl definován parametr [email] a dostával ho do komponnety. Pokud ten email budu chtít upravit na jiném projektu abych nelezl do kodu.

Přes konstruktor to nejde. Máte prosím nějaké doporučení? Děkuji

Editoval batko (4. 9. 2014 22:33)

Felix
Nette Core | 1247
+
0
-
class FormContact extends Component {

    public function __construct(IMailer $mailer, $email) {
        // ...
    }

Pokud to chces predavat tovarnicce:

- implement: FormContactFactory
  parameters: [contactEmail]
  arguments: [..., %contactEmail%]

Pokud to chces brat z configu

- implement: FormContactFactory
  arguments: [..., %contactEmail%]

Editoval Felix (6. 9. 2014 11:10)