Nette\Database – nastavení jiné třídy než ActiveRow
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Filip Procházka
- Moderator | 4668
Po rychlém nahlédnutím do kódu předpokládám, že by to mělo jít, ale pouze něčím, co považuju za hack.
use Nette\Database\Connection;
use Nette\Database\Statement;
use Nette\Database\Row;
use PDO;
class MyConnection extends Connection
{
public function __construct($dsn, $username = NULL, $password = NULL, array $options = NULL)
{
parent::__construct($dsn, $username, $password, $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('MyStatement', array($this)));
}
}
class MyStatement extends Statement
{
protected function __construct(Connection $connection)
{
parent::__construct($connection);
$this->setFetchMode(PDO::FETCH_CLASS, 'MyRowClass', array($this));
}
}
class MyRowClass extends Row { ... }
Pokud na tom hodláš stavět ORM, tak to nedělej a postav to raději nad dibi, nebo buď ještě chytřejší a použíj něco hotového, třeba Doctrine 2.