Jak nastavit připojení do více databází v BasePresenteru

Allconius
Člen | 313
+
0
-

Ahoj, potřeboval bych načíst do BasePresenteru více DB v services mám:


- App\Presenters\BasePresenter(@database.default.context, @database.db1.context, @database.db2.context)

a BasePresenter:


abstract class BasePresenter extends Nette\Application\UI\Presenter
{

    public function __construct(private Nette\Database\Explorer $database, private Nette\Database\Explorer $db1, private Nette\Database\Explorer $db2)
    {

    }

ale objevuje se tato hláška:


Service of type App\Presenters\BasePresenter: Class App\Presenters\BasePresenter is abstract.

Marek Bartoš
Nette Blogger | 1177
+
0
-

BasePresenter nemůže být služba. Všechny ne-abstraktní presentery, které z něj dědí jsou služby.
Pokud to chceš udělat přes konstruktor, tak budeš muset stejné nastavení a registraci udělat pro všechny presentery zvlášť.
Spíš z toho ale udělej setter a použij v neonu klíč decorator, který ti najde všechny služby dědící BasePresenter a setter na nich zavolá.
https://doc.nette.org/…onfiguration#…