Dědičnost presenterů, kde definovat connection a jak ho předat dětem
- Hafran
- Člen | 121
Zdravím,
v prográmku se připojuji k databázi z presenteru X, který vychází
z abstraktního BasePresenteru. Používám new
Connection(‚$dsn‘,‚$user‘, ‚$pass‘); Všechno jde v pořádku.
;)
Ale potřeboval bych informace o připojení umístit (asi) do BasePresenteru
aby ho měly všechny child presentery přístupné stejně – nechci
duplikovat kód, nedejbože připojení. A nemůžu přijít na to, jak nějak
snadno předat z BasePresenteru objekt Connection dětem (něco jako
parrent::connection ;)
(MySQL, Php 5.3, Nette 2.0beta)
Editoval Hafran (8. 11. 2011 11:19)
- MW
- Člen | 615
Tak parametry je vhodne nastavit v configu, napr. :
database:
dsn: 'mysql:host=localhost;dbname=dbname'
user: root
password: 'heslo'
a pripojeni pak treba v BaseModelu :
static public $database;
static function init($database) {
self::$database = new \Nette\Database\Connection(
$database->dsn, $database->user, $database->password);
}
kde v dalsich modelech pristupujes pres self::$database->
Jinak do databaze by mel pristupovat prave model aplikace.. nikoliv
presenter..
Viz dokumentace .
Editoval MW (8. 11. 2011 11:29)