Skece [console] v config.ini?

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

Zdravím. Napsal jsem skript, který stojí sám o sobě a spouští ho cron. Tento skript je vyloučen z webového adresáře. Upozorňuji, že tomu moc nerozumím. Skript jsem odladil ve webovém adresáři, ale když ho dám o adresář výš a spouští ho cron, tak to hází následující chybu:

PHP Fatal error:  Uncaught exception 'InvalidStateException' with message 'There is not section [console] in '/data/cz/webdeal/wwwroot/cron/../www/app/config.ini'.' in /data/cz/webdeal/wwwroot/www/libs/Nette/Config/ConfigAdapterIni.php:147
Stack trace:
#0 [internal function]: ConfigAdapterIni::load('/data/cz/webdea...', 'console')
#1 /data/cz/webdeal/wwwroot/www/libs/Nette/Config/Config.php(82): call_user_func(Array, '/data/cz/webdea...', 'console')
#2 /data/cz/webdeal/wwwroot/www/libs/Nette/Configurator.php(126): Config::fromFile('/data/cz/webdea...', 'console', 0)
#3 /data/cz/webdeal/wwwroot/www/libs/Nette/Environment.php(462): Configurator->loadConfig(NULL)
#4 /data/cz/webdeal/wwwroot/cron/Cron2.php(14): Environment::loadConfig()
#5 {main}
  thrown in /data/cz/webdeal/wwwroot/www/libs/Nette/Config/ConfigAdapterIni.php on line 147

Ještě část uvedeného skriptu Cron2.php:

<?php
// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__) . '/../www');

// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');

// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/libs');

// Nette loader
require_once LIBS_DIR . '/Nette/loader.php';

Environment::loadConfig();

$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();

dibi::connect(Environment::getConfig('database'));
...
?>

Hádám, že je problém způsoben tím, že se skript volá z konzole. Chce to v config.ini sekci [console], buhužel netuším. Nevíte někdo? Může to vůbec fungovat?

_Martin_
Generous Backer | 679
+
0
-

Kdyť to sám píšeš: chce to sekci [console] v config.ini. Takže přidej jednu řádku a jsi za vodou.

[common]
; nějaké nastavení, pokud potřebuješ

[console < common]
; nějaké nastavení jen pro konzoli, pokud nepotřebuješ, necháš sekci prázdnou
Martin Mates
Člen | 179
+
0
-

Taky mě to napadlo, ale říkal jsem si, že tam bude asi třeba něco nastavit. Zkusím to, jak říkáš. Každopádně díky!

_Martin_
Generous Backer | 679
+
0
-

Je to tak, pro každé prostředí, které použiješ, musíš mít v configu sekci, byť by byla prázdná (platí to tedy i pro production a development).