Nacteni udaju z config.neon pro odeslani emailu
- ras
- Člen | 135
Zdravim vsechny,
stahl jsem si posledni verzi Nette2 (2011–08–08) pro PHP 5.3. Mam prekopirovany sandbox a drobne upraveny cesty na APP, LIBs, atd. … jinak je to bez uprav.
config.neon mimo jine obsahuje
common:
services:
mailer:
host: smtp.mujserver.cz
port: 25
username: webformular@mujserver.cz
password: aabbcc
timeout: 10
transport: tls
production < common:
email:
from: noreply@domena1.cz
toInternal: xxx@domena1.cz
development < common:
email:
from: noreply@domena1.cz
toInternal: aaa@domena1.cz
v HomepagePresenter.php bych pote rad v ramci protected function createComponentNapisteMiForm() provedl nacteni techto udaju z configu ve funkci sendMail
private function sendMail($values)
{
$mail = new Message;
$mail->setFrom(????, 'Webovy automat - domena2.cz');
...
...
$template->setFile(????->dir."/mailBody.latte");
...
....
return $return;
}
Drive jsem to nacital pres Environment::getConfig(‚email‘)->neco_z_configu ci Environment::getConfig(‚templates‘)->… ale ted to proste pres nove DI nejsem nejak sto rozchodit.
Dekuji za radu, nasmerovani ci nejaky kus kodu.
- pave.kucera
- Člen | 122
V presenteru se k údajům z konfigu dostaneš následujícím způsobem
<?php
$this->context->params;
?>
- ras
- Člen | 135
AHA, omluva. Ja zapomenul hned na zacatku uvest, ze kdyz zadam v presenteru
dump($this->context->params);
tak dostanu JEN takovyho vysledek
array(6) {
productionMode => FALSE
consoleMode => FALSE
wwwDir => "nejaka_cesta\web"
appDir => "nejaka_cesta\web_app"
libsDir => "nejaka_cesta\web_libs"
tempDir => "nejaka_cesta\web_app/../web_temp"
}
a to je vse … tedy ani slovo o necem z config.neon
Kazdopadne, kdyz v bootstrapu zmenim nazev config.neon na napr. confi.neon, tak me to okamzite hlasi, ze takovy soubor neexistuje → z toho usuzuji, ze config.neon se nacita.
bootstrap (klasika ze sandboxu)
$container = $configurator->loadConfig(__DIR__ . '/config.neon');
Takze co ted?
- ras
- Člen | 135
Jeste nez to vyzkousim, tak bych rekl, ze to tim prece byt nemuze. Problem je v tom, ze mi v dump($this->context->params); nic nevypise a na to prece nemuze mit vliv umisteni v config.neon … vypis context param prece neresi, zda to mam spravne logicky zapsane (pokud dodrzuji konvenci YAMLu) … nebo se pletu ?
- pave.kucera
- Člen | 122
@22 má pravdu, máš to špatně odsazené. Cokoli, co je na první úrovni je „sekce“, která se dá načíst přes Nette\Configurator::loadConfig, takže teď tam máš sekce common, production, development a email.
- Patrik Votoček
- Člen | 2221
nebo se dá použít trochu magické:
$this->context->expand('%appDir%/pathToTemplate');
:-)