Jak funguje inject v Nette 2.1 u service?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Leinad
- Člen | 23
Mám dvě třídy. Jednu
<?php
abstract class DAO extends Nette\Object{
/** @var Connection */
private $database;
private $dibi;
private $tableName;
private $columns = array();
private $columnsDefaults = array();
public function __construct($tableName) {
$this->tableName = $tableName;
echo "construct ";
}
/**
* @param \Nette\Database\Connection
*/
public function injectConnection(\Nette\Database\Connection $database){
$this->database = $database;
echo "inject";
}
...
?>
A druhou:
<?php
class StatusDAO extends DAO{
public function __construct() {
parent::__construct("statuses");
}
...
?>
V configu mám nastaveno:
–
services:
statusDAO: StatusDAO
–
Když v prezenteru pak použiju
<?php
$statusDAO = $this->context->getService("statusDAO");
?>
Tak se mi vypíše na obrazovku jen „construct“. Tedy žádný „inject“ se neprovede.
Dělám to špatně, nebo je chyba v Nette?