Akutní pomoc [dibi, Debugger]
- dog.big
- Člen | 49
Zdravím,
po přechodu na nové Nette (stable větev), kdy se mi vše rozkopalo, jsem vše
dal do pořádku díky návodům a changelogům.
Jediné. Co mi nyní nejde je to nejstěžejnější a to připojení dibi
databáze. Nevím, jak ji po přechodu na novou verzi zinicializovat.. Po
doplnění inicializace to vyplivne chybu: Configuration must be array,
string or object u připojování k db. Už jsem v totální
zoufalosti.
Dále mi odmítá „nastartovat“ debugger.
Důležité části kódu z boostrap.php
...
$configurator = new Nette\Config\Configurator;
$configurator->addParameters($params);
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->addConfig(__DIR__ . '/config.neon');
$configurator->createRobotLoader()
->addDirectory('app')
->addDirectory('dibi')
->addDirectory('libs/Nette/Extras')
// TODO CACHE ->setCacheStorage(new Nette\Caching\Storages\FileStorage('temp'));
->register();
Debugger::$logDirectory = __DIR__ . '/../log';
Debugger::$strictMode = TRUE;
Debugger::enable(Debugger::DEVELOPMENT);
$container = $configurator->createContainer();
dibi::connect($container->parameters->database);
...
Důležité části kódu z config.neon
common:
parameters:
database:
profiler: true
lazy: true
...
...
production < common:
parameters:
database:
driver: mysql
host: *****
database: *****
username: *****
password: *****
charset: utf8
...
Děkuji za rychlé rady.
- dog.big
- Člen | 49
nevím, asi v tom array nic není, echo nic neukazuje a env. v debug logu
taky nic.. :(
prostě to nenačítá správně teď konfiguraci dibi z config.neon,,
Též mi to začlo házet 404 obecnou chybu u každého prvního načtení úvodní stránky.. něco ve smyslu špatných routů.. ale chyba je jen v logu, nezpůsobuje pád applikace
- SendiMyrkr
- Člen | 30
- chybí ti tam odsazení u parameters v sekci production, neni to tim?
- místo echo můžeš použít print_r($var)
- pokud si na developmnet nepřepisuješ v sekci development jinym nastavením?
Editoval SendiMyrkr (13. 2. 2012 21:39)
- SendiMyrkr
- Člen | 30
A ještě k debuggeru, myslim že následující řádky jsou zbytečný, viz řádka 4(enableDebugger):
Debugger::$logDirectory = __DIR__ . '/../log';
Debugger::$strictMode = TRUE;
Debugger::enable(Debugger::DEVELOPMENT);
- dog.big
- Člen | 49
Zdravím,
asi jsem na to přišel.
Nette neumí nadále rozpoznávat IP adresy z arraye
Nefunguje
...
// Nette Debugger
$configurator->enableDebugger(__DIR__ . '/../log');
Debugger::enable(array('IP1','IP2'));
..
ale tohle funguje
...
// Nette Debugger
$configurator->enableDebugger(__DIR__ . '/../log');
Debugger::enable('IP1');
...
že by bug?
Editoval dog.big (14. 2. 2012 11:32)
- Aurielle
- Člen | 1281
Nareportováno. Jinak Debugger bere i více IP přímo ve stringu oddělených čárkou. V mezičase můžeš využít (preferovaný) způsob nastavování produkčního módu přes Configurator, viz API.
- knoxa
- Člen | 16
Nevím jestli už si to vyřešil celé či ne, ale ještě si zkus updatnout dibi na verzi 2.0 (vyšla společně s Nette 2.0) a promázni temp. I když mě myslím jela i „stará“ dibi 1.5 s Nette 2, ale nechci kecat. Každopádně ti pak pofrčí db profiler.
A pokud používáš dibi staticky jak píšeš, tak můžeš připojení k db testovat rovnou v bootstrap.php
<?php
dibi::connect($container->parameters->database);
if(dibi::isConnected())
dump(dibi::getDatabaseInfo()); //kam ses pripojil
else
echo 'nepripojen';
die;
?>
Pak můžeš řešit dál co ti nejede v Nette.
Editoval knoxa (15. 2. 2012 15:13)