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.
spidy
Člen | 55
+
0
-

Ahoj, existuje v Nette\Database něco jako v dibi

$row->setRowClass('jmenoTridy');

?

Filip Procházka
Moderator | 4668
+
0
-

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.