registrace služby v config.neon

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
brontosaurus
Člen | 49
+
0
-

Zkouším podle jedné z diskuzí zaregistrovat službu pro modelování dat ..

<?php

class MujModel {
    /** @var \Nette\Database\Context */
    public $database;

    public function __construct(\Nette\Database\Context $database) {
        $this->database = $database;
    }

    public function mojeMetoda() {
        return null;
    }
}

config.neon

services:
	- App\Forms\SignFormFactory
	router: App\RouterFactory::createRouter
	- App\Model\MujModel

a NETTE mi vyhodí hlášku „Class App\Model\MujModel used in service ‚28_App_Model_MujModel‘ not found or is not instantiable.“

Myiyk
Člen | 321
+
0
-

ověř si, zda tvá třída má opravdu takový název a je v namespace App\Model

brontosaurus
Člen | 49
+
0
-

V App\Model mám MujModel.php ..

David Matějka
Moderator | 6445
+
0
-

cesta k souboru !== namespace. Namespace musi byt uveden na zacatku souboru, precti si dokumentaci

brontosaurus
Člen | 49
+
0
-

Teď už tam mám namespace App\Model; a hláška je pořád stejná. Cache jsem taky promazal.

David Matějka
Moderator | 6445
+
0
-

ukaz jak to mas

brontosaurus
Člen | 49
+
0
-

<?php

namespace App\Model;

class MujModel {
/** @var \Nette\Database\Context */
public $database;

public function __construct(\Nette\Database\Context $database) {
$this->database = $database;
 }

public function mojeMetoda() {
return null;
}
}

Namespace
Člen | 81
+
+1
-

brontosaurus napsal(a):

<?php

namespace App\Model;

class MujModel {
/** @var \Nette\Database\Context */
public $database;

public function __construct(\Nette\Database\Context $database) {
$this->database = $database;
 }

public function mojeMetoda() {
return null;
}
}

<?php

namespace App\Model;

use Nette;

class MujModel extends Nette\Object {

   /** @var \Nette\Database\Context */
   private $database;

   public function __construct(\Nette\Database\Context $database) {
      $this->database = $database;
   }

   public function mojeMetoda() {
      return null;
   }
}
?>