Při změně config.local.neon na jinou databázi poté vrácení na předešlou
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Muragosik
- Člen | 9
Dobrý den,
Mám takový problém, že na webu jsem potřeboval změnit databázi a při
změně došlo k chybě.
Řekl jsem si, že to tedy radši nechám a vrátím tu předešlou.. ale co se
stalo ani ta teď nefunguje.
Jméno, heslo atd. nastaveno 100% správně..
<?php
20: // Enable RobotLoader - this will load all classes automatically
21: $configurator->setTempDirectory(__DIR__ . '/../temp');
22: $configurator->createRobotLoader()
23: ->addDirectory(__DIR__)
24: ->addDirectory(__DIR__ . '/../libs')
25: ->register();
26:
27: // Create Dependency Injection container from config.neon file
28: $configurator->addConfig(__DIR__ . '/config/config.neon', $configurator::NONE);
29: $configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
30: $container = $configurator->createContainer(); // <- chyba se zdůrazňuje zde..
31:
32: return $container;
//
// Chyba: No service of type Nette\Application\IRouter found. Make sure the type hint in Method Nette\Application\Application::__construct() is written correctly and service of this type is registered.
//
?>
Editoval Muragosik (19. 1. 2015 18:27)
- David Matějka
- Moderator | 6445
Moment… jdu oprasit kristalovou kouli… a nebo napis, jakou chybu ti to hlasi..........
- David Matějka
- Moderator | 6445
Hm, mas pravdu – heslo a jmeno mas (asi) spravne.
Chyba totiz nesouvisi s databazi, ale – jak hlaska tak trosku napovida – ze neexistuje router…
Ukaz config.neon..
- Muragosik
- Člen | 9
<?php
parameters:
images:
maxWidth: 800
maxHeight: 600
basePath: "img/uploads/"
tempDir: ""
dbChangelog:
dir: "changelog"
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
session:
expiration: 14 days
services:
database: @nette.database.default
authenticator: Authenticator(@database::table('users'))
routerFactory: RouterFactory
router: @routerFactory::createRouter(@modelLoader)
modelLoader:
class: Local\ModelLoader
arguments: [@container]
imageHelper:
class: \ImageHelper(@container)
posts: \Models\Posts
factories:
cache:
class: Nette\Caching\Cache(@cacheStorage)
emailMessage:
class: \Nette\Mail\Message
setup:
- setMailer( Local\SendmailMailer(%productionMode%) )
?>
- David Matějka
- Moderator | 6445
Neni na serveru nejaky php accelerator (treba eAccellerator), ktery zahazuje phpdoc?
Zkus spustit requirements checker, jestli je vse ok (konkretne „Reflection phpDoc“)
- Muragosik
- Člen | 9
<?php
use Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
class RouterFactory
{
private $container;
public function __construct(\Nette\DI\Container $container) {
// parent::__construct();
$this->container = $container;
}
public function createRouter()
{
$router = new RouteList();
$adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $adminRouter;
$frontendRouter = new RouteList('Front');
$frontendRouter[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
/* Categories */
$frontendRouter[] = new Route('gify[/<page>]', 'Homepage:gifs');
$frontendRouter[] = new Route('obrazky[/<page>]', 'Homepage:images');
$frontendRouter[] = new Route('videa[/<page>]', 'Homepage:videos');
// $frontendRouter[] = new Route('<id>', 'Homepage:post');
$frontendRouter[] = new Route('post/<id>', array(
'presenter' => 'homepage',
'action' => 'post',
'id' => array(
Route::VALUE => NULL,
Route::FILTER_IN => callback($this->container->modelLoader->posts, 'routeFilterIn'),
Route::FILTER_OUT => callback($this->container->modelLoader->posts, 'routeFilterOut'),
)
));
$frontendRouter[] = new Route('<page>', 'Homepage:default');
$frontendRouter[] = new Route('', 'Homepage:default');
$frontendRouter[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $frontendRouter;
return $router;
}
}
// Jak říkám v kodu si myslí, že chyba není, prostě z ničeho nic jsem, změnil databázi a navrátil poté původní
// Píše to:
// No service of type Nette\Application\IRouter found.
// Make sure the type hint in Method Nette\Application\Application::__construct() is written correctly
// and service of this type is registered.
?>