Jak dostat parametr z config.neon do modelu?
- Allconius
- Člen | 317
Ahoj, mám config neon:
<?php
parameters:
aplikacenazev: Skoleni
aplikace: 46
mailspravce: spravce@web.cz
application:
errorPresenter: Error
mapping:
*: App\*Module\Presenters\*Presenter
session:
expiration: 2 days
autoStart: true
database:
default:
dsn: 'mysql:host=xxxxxxx.cz;dbname=db1'
user: skoleni
password: xxxxxxx
options:
lazy: true
autowired: true
db2:
dsn: 'mysql:host=pcdb.brno.cz;dbname=db2'
user: skoleni
password: xxxxxxx
options:
lazy: true
autowired: false
services:
router: App\RouterFactory::createRouter
- App\Model\DbManager
- App\Model\Db2Manager(@database.db2.context)
authenticator:
App\Auth\Authenticator(@database.db2.context)
extensions:
tbDatePicker: RadekDostal\NetteComponents\DateTimePicker\TbDatePicker\DI\TbDatePickerExtension
visualPaginator: IPub\VisualPaginator\DI\VisualPaginatorExtension
tbDatePicker:
format: j. n. Y
tracy:
logSeverity: E_ALL
?>
a nevím jak dostat ty parametry aplikacenazev, aplikace a mailspravce do modelu:
<?php
namespace App\Model;
use Nette;
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
class Db2Manager
{
use Nette\SmartObject;
/** @var Nette\Database\Context */
private $db2;
public $aplikace;
private $mailspravce;
public function __construct(Nette\Database\Context $db2)
{
$this->db2 = $db2;
$this->aplikace = $this->context->parameters['aplikace'];
$this->mailspravce = $this->context->parameters['mailspravce'];
}
.........
?>
Ta syntax „$this->context->parameters[‚mailspravce‘];“ funguje asi jen v presenteru, že ?
- Ondřej Kubíček
- Člen | 494
přes $this->context
bys k params neměl přistupovat ani
v presenteru…
do modelu to dostaneš jednoduše:
- App\Model\Db2Manager(@database.db2.context, %aplikacenazev%, %aplikace%, %mailspravce%)
public function __construct(Nette\Database\Context $db2, string $aplikacenazev, string $aplikace, string $mailspravce)
- Allconius
- Člen | 317
Ahoj, díky, nakonec jsem to upravil takto:
<?php
parameters:
config:
aplikacenazev: Skoleni
aplikace: 46
mailspravce: spravce@web.cz
.....
services:
router: App\RouterFactory::createRouter
- App\Model\DbManager(%config%)
- App\Model\Db2Manager(%config%, @database.db2.context)
authenticator:
App\Auth\Authenticator(%config%, @database.db2.context)
?>
a model:
<?php
namespace App\Model;
use Nette;
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
class Db2Manager
{
use Nette\SmartObject;
/** @var Nette\Database\Context */
private $db2;
/**
* @var array
*/
private $config;
public $aplikace;
private $mailspravce;
public function __construct(array $config, Nette\Database\Context $db2)
{
$this->db2 = $db2;
$this->config = $config;
$this->aplikace = $this->config['aplikace'];
$this->mailspravce = $this->config['mailspravce'];
}
?>
Jen se zeptám, proč nejde rovnou udělat – App\Model\Db2Manager(%parameters%, @database.db2.context) ?, to mi nefungovalo, musel jsem tam přidat ten config …