Parametry připojení k databázi jako argument do Presenteru

Kcko
Člen | 468
+
0
-

Ahoj,
potřebuji si do presenteru, který mám jako službu předat parametry připojení (ne resource).

Zkouším to takto:
- App\ServiceModule\Presenters\DbBackupPresenter(@database.dsn) s tím, že dostanu hlášku

***Service ‚23‘ (type of App\ServiceModule\Presenters\DbBackupPresenter): Reference to missing service ‚database.options‘. (used in __construct())


konfiguraci DB mám v database.dev.neon

<?php
database:
	dsn: 'mysql:host=xxx;dbname=xxx'
	user: xxx
	password: xxx
	reflection: Andweb\Database\Conventions\Conventions
?>

Co dělám špatně, jak to zapsat?

Díky.

Marek Bartoš
Nette Blogger | 1274
+
+1
-

Pomocí @database.dsn se odkazuješ na službu jménem database.dsn. Pomocí %database.dsn% předáš hodnotu z klíče parameters > database > dsn

Kcko
Člen | 468
+
0
-

Ahoj, diky za info. Takže jedine smysluplné řešení je duplicitne uvést parametry pripojeni do sekce parameters což sem úplně nechtěl, nelze to jinak?

David Grudl
Nette Core | 8227
+
+3
-
parameters:
	db:
		dsn: 'mysql:host=xxx;dbname=xxx'
		user: xxx
		password: xxx
		reflection: Andweb\Database\Conventions\Conventions

database: %db%
Kcko
Člen | 468
+
0
-

David Grudl napsal(a):

parameters:
	db:
		dsn: 'mysql:host=xxx;dbname=xxx'
		user: xxx
		password: xxx
		reflection: Andweb\Database\Conventions\Conventions

database: %db%

Díky, nemyslel jsem si, že tohle neon/nette takhle schroupe.

PS. Můžu se ještě zeptat proč makro {debug} nepodporuje 2 parametr, stejně jako Tracy\Debugger::barDump()?
Dost by se mi to někdy hodilo.


Mimo otázku: potřeboval jsem si zálohovat z jistých důvodů pravidelně DB sám, hledal jsem a našel jsem https://github.com/dg/MySQL-dump
Velmi pěkné řešení (správně vyzálohovalo celou DB včetně pohledů, triggerů a procedur). Zatím je to malá DB, ale jak se to bude chovat s větší DB? (Třeba 2–5 GB?)