Nette\DI\ServiceCreationException v Produkci
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Joacim
- Člen | 229
Pokud vypnu laděnku dostanu hlášku viz. níže (pokud je laděnka zaplá vše funguje ok)
Nette\DI\ServiceCreationException: Service of type App\Model\SecurityManager needed by App\Presenters\LoginPresenter::__construct() not found. Did you register it in configuration file? in /var/www/html/vendor/nette/di/src/DI/Helpers.php:107 @ http://test/login/ @@ exception--2016-01-22--10-31--7a6f898a51.html
Bootstrap.php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
// Disable Debugger ("Laděnka")
$configurator->setDebugMode(false);
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
Zkoušel jsem mít identické oba neony ale ani to nepomohlo
LoginPresenter
class LoginPresenter extends BasePresenter {
const BAN_TIME = 15; // BAN time in minutes
/** @var \App\Model\SecurityManager */
private $securityManager;
/** @var Nette\Http\Session */
private $session;
/** @var Nette\Http\SessionSection */
private $sessionSection;
public function __construct(\App\Model\SecurityManager $securityManager, Nette\Http\Session $session) {
$this->securityManager = $securityManager;
$this->session = $session;
// Získáme přístup do sekce 'login_restricted':
$this->sessionSection = $session->getSection('login_restricted');
// Proměnná $section->login_restricted vyexpiruje při zavření prohlížeče
$this->sessionSection->setExpiration('30 minutes', 'login_restricted');
}
services:
router: App\RouterFactory::createRouter
securityManager: App\Model\SecurityManager
authorizatorFactory: App\Model\AuthorizatorFactory
authorizator: @authorizatorFactory::create
Editoval Joacim (22. 1. 2016 12:01)
- Joacim
- Člen | 229
CZechBoY napsal(a):
Zkoušel si smazat cache?
Ok, omlouvám se, ale Linux Admin mě nastavil špatně práva jen pro temp/ takže jsem v cache neviděl nic i když tam něco bylo. Proto jsem hledal chybu i jinde, jelikož jsem přecházel ze staré na novou verzi Nette
Editoval Joacim (22. 1. 2016 12:22)