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