Zapnutí cache v Nette\Database
- Vyki
- Člen | 388
Tak se mrkni do sandboxu https://github.com/…e/master/app, respektive do konfiguracniho souboru https://github.com/…/config.neon
- Richard Faila
- Člen | 40
Vyki napsal(a):
Tak se mrkni do sandboxu https://github.com/…e/master/app, respektive do konfiguracniho souboru https://github.com/…/config.neon
A tam se dá vidět konkrétně co? Vidím jen normální konfigurák… Já jsme se to snažil zprovoznit jak to bylo ukázáno na https://www.youtube.com/watch?… ale sám si nejsem si jistý jestli to mám správně.
- Richard Faila
- Člen | 40
Ještě ukážu jak to mám já, třeba to někomu pomůže, protože ve videu to je jinak
config.neon
<?php
database:
class: Nette\Database\Connection
arguments: ['mysql:host=localhost;dbname=nette', 'root', '']
model:
class: Model
arguments: [@database,@cacheStorage]
?>
V modelu potom:
<?php
`/**
* Model base class.
*/
class Model extends Object
{
/** @var Nette\Database\Connection */
public $database;
public function __construct(Nette\Database\Connection $database, $cacheStorage){
$this->database = $database;
$this->database->setCacheStorage($cacheStorage);
}
?>
Samotného by mě zajímalo jestli to je správně, protože to místy vypadá, že to nefunguje.
Editoval Richard Faila (20. 9. 2011 20:01)
- studna
- Člen | 181
Toto není zrovna pěkné řešení. Co třeba takto?
// ...
class ServiceFactory
{
public static function createServiceDatabase( Container $container )
{
$db = new Connection(...);
$db->setCacheStorage( $container->cacheStorage );
return $db;
}
}
config.neon
database:
factory: ServiceFactory::createServiceDatabase
- Tomáš Kuba
- Člen | 15
Pro ty pomalejší jako jsem já:
class ServiceFactory {
public static function createServiceDatabase(DiContainer $container, $dns, $user, $password) {
$db = new Connection($dns, $user, $password);
$db->setCacheStorage($container->cacheStorage);
return $db;
}
}
v config.neon pak:
database:
#class: Connection
arguments: ['mysql:host=localhost;dbname=jmenodatabaze', 'uzivatel', 'heslo']
factory: ServiceFactory::createServiceDatabase
Editoval Tomáš Kuba (4. 10. 2011 13:43)
- mulisano
- Člen | 8
Richard Faila napsal(a):
Ještě ukážu jak to mám já, třeba to někomu pomůže, protože ve videu to je jinak
config.neon
<?php database: class: Nette\Database\Connection arguments: ['mysql:host=localhost;dbname=nette', 'root', ''] model: class: Model arguments: [@database,@cacheStorage] ?>
V modelu potom:
<?php `/** * Model base class. */ class Model extends Object { /** @var Nette\Database\Connection */ public $database; public function __construct(Nette\Database\Connection $database, $cacheStorage){ $this->database = $database; $this->database->setCacheStorage($cacheStorage); } ?>
Samotného by mě zajímalo jestli to je správně, protože to místy vypadá, že to nefunguje.
Toto řešení je pouze nepěkné nebo je zároveň i nefunkční?