Nette\Database\Connection + config.neon + services + vlastní Router

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

Chtěl bych se zeptat.

Mám v config.neon nastavené připojení k databázi prostřednictvím Nette\Database\Connection následovně:

common:
  parameters:
    database:
      driver: mysql
      dbname: dbname
      user: root
      password: heslo

  php:
    date.timezone: Europe/Prague

  nette:
    application:
      errorPresenter: Error

    debugger:
      strictMode: false

    database:
      dsn: "%database.driver%:dbname=%database.dbname%"
      user: %database.user%
      password: %database.password%

  services:
    - Authenticator
    - PagesRepository

production < common:

development < common:

V bootstrap.php mám nadefinovaný vlastní router.

...
$container->router[] = new MyRoute();
...

V něm bych potřeboval přistupovat k databázi tak, jako mi přistupují služby, např. PagesRepository, ale to se mi nijak nedaří – buď jsem úplně blbej, a nebo jsem úplně blbej.

Když jsem to „naprasil“, tak mi to funguje, ale nejsem s tím spokojený – používám statické dibi:

...
dibi::connect($options);

$container->router[] = new MyRoute();
...

Vyzkoušel jsem, a routování s pomocí DB funguje tak, jak potřebuji. Ale není implementované tak, jak bych chtěl.

Prosím o radu, jak správně použít, abych mohl využít databáze např. jako v services.

Díky.

vvoody
Člen | 910
+
0
-

Ak nechceš prasiť tak sa inšpiruj v aktuálnom sandboxe. Vytvor si továrničku na router, zaregistruj ju ako službu v configu (tej môžeš predať connection ako ktorejkoľvek inej službe/modelu) a potom zaregistruj službu router ktorá bude vytváraná tou továrničkou.

toka
Člen | 253
+
0
-

Díky, to je přesně ono!