config.neon konfigurace, pro připojení k MySQL DB

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

Ahoj, mám nějnovější verzi Nette Frameworku 2.0 Alpha for PHP 5.2 NonPrefix.
PHP tedy 5.2, v novém Nette FW je místo config.ini → config.neon.Nevím ale jak ho nakonfigurovat abych se připojil k MySQL DB co jsem na tomto fórum našel je toto:
`production < common:
database:
driver: mysqli
host: localhost
username: root
password:
database: blogtut
charset: utf8
profiler: profiler`
Zkoušel jsem tam hodit konfiguraci i z config.ini ale nic.
Když je tam konfigurace z config.ini vypisuje to:

79:            } elseif (!is_array($config)) {
//CHYBA 80:             throw new InvalidArgumentException('Configuration must be array, string or object.');
81:            }

Když je tam toto: `production < common:
database:
driver: mysqli
host: localhost
username: root
password:
database: blogtut
charset: utf8
profiler: profiler`
Tak to nenačte config.neon viz:
NeonException

Either tabs or spaces may be used as indenting chars, but not both. on line 21, column 21.

20:    // Load configuration from config.neon file
21:   Environment::loadConfig();//CHYBA

Díky za pomoc.

Editoval jackm (13. 3. 2011 18:16)

Vyki
Člen | 388
+
0
-

Také mi to dělalo. Vyřešil jsem to tak, že jsem smazal tabulátory a prázdné místo před sekcí na všech řádcích a potom pomocí tabulárorů opět vytvořil sekce, tak jak mají být. Odděluj sekce pouze pomocí tabulátorů.

Editoval Vyki (13. 3. 2011 18:25)

jackm
Člen | 54
+
0
-

http://www.load.borec.cz/configerr.png
Zkusil jsem to takto a pořád ta chyba:

79:            } elseif (!is_array($config)) {
//CHYBA 80:             throw new InvalidArgumentException('Configuration must be array, string or object.');
81:            }

Editoval jackm (13. 3. 2011 18:35)

Michalek
Člen | 211
+
0
-

Ten řádek 21 se myslí v config.neon, ne v bootstrap.php :-)

Nemáš tam (line 20 config.neon) navíc dva tabulátory? Je to těžce háklivé na nějaké skryté znaky.

Editoval Michalek (13. 3. 2011 18:47)

jackm
Člen | 54
+
0
-

Já jsem vůbec nic o bootstrap.php nepsal, a to co je na 21.řádku, už bylo defaultně v config.neon.

Editoval jackm (13. 3. 2011 18:47)

Michalek
Člen | 211
+
0
-

Nejlíp když někam na chvíli nahraješ přímo ten config.neon pro stažení, já jsem se s tím mořil minule půl dne.

Vyki
Člen | 388
+
0
-

U toho bloku

	php: # PHP configuration			na tomto radku je pouzita mezera za : coz mozna vadi
		date.timezone: Europe/Prague
		# session.save_path: "%tempDir%/sessions"
		# zlib.output_compression: yes
		# default_charset: "UTF-8"

dej pouze

	php:
		date.timezone: Europe/Prague
jackm
Člen | 54
+
0
-

http://www.load.borec.cz/config.neon
Děkuji ale chyba, bohužel přetrvává.

Michalek
Člen | 211
+
0
-

Zkus přehodit celé database: z production do development.

jackm
Člen | 54
+
0
-

Bohužel nejde ani když jsem zkoušel dát hodnoty do uvozovek. :/

Michalek
Člen | 211
+
0
-

Takto http://fii.cz/tawzuchj mi to funguje.

jackm
Člen | 54
+
0
-

Smazal jsem temp, přepsal si databázi v tom tvém configu, dal ho do app, chyba stejná. :(

Patrik Votoček
Člen | 2221
+
0
-

nehapruje tam náhodou ten prázdný password?

jackm
Člen | 54
+
0
-

Zkusil jsem ho úplně smazat a pořád ta chyba.Kurňa, že se zaseknu úplně mimo Nette bych nečekal. :D
edit:Napadl mě i formát, ale asi to bude blbost.Když to uložím jako UTF8 bez BOM tak pořád:

79:            } elseif (!is_array($config)) {
80:              //chyba  throw new InvalidArgumentException('Configuration must be array, string or object.');

A když UTF8 tak toto: `NeonException

Unexpected ‚common‘ on line 7, column 1. search►

Source file ►

Call stack ▼

tools/Neon.php (120) source ► Neon-> error ()

Config/ConfigAdapterNeon.php (51) source ► Neon:: decode (arguments ►)

inner-code ConfigAdapterNeon:: load (arguments ►)

Config/Config.php (64) source ► call_user_func (arguments ►)

Environment/Configurator.php (122) source ► Config:: fromFile (arguments ►)

Environment/Environment.php (460) source ► Configurator-> loadConfig (arguments ►)

app/bootstrap.php (21) source ► Environment:: loadConfig ()

14:
15: // Enable Debug for error visualisation & logging
16: Debug::$strictMode = TRUE;
17: Debug::enable();
18:
19:
20: // Load configuration from config.neon file
21: //chyba Environment::loadConfig();`

Editoval jackm (13. 3. 2011 22:53)

Michalek
Člen | 211
+
0
-

Zkoušet „platnost“ configu lze online na http://ne-on.org/ ale zrovna tady to moc nepomůže.

Patrik Votoček
Člen | 2221
+
0
-

hod sem celou ladenku

jackm
Člen | 54
+
0
-
InvalidArgumentException

Configuration must be array, string or object. search►

Source file ▼

File: C:\www\blog_test\libs\dibi\libs\DibiConnection.php   Line: 80

73:                $tmp = array();
74:                foreach ($config as $key => $val) {
75:                    $tmp[$key] = $val instanceof Traversable ? iterator_to_array($val) : $val;
76:                }
77:                $config = $tmp;
78:
79:            } elseif (!is_array($config)) {
80:             //chyba   throw new InvalidArgumentException('Configuration must be array, string or object.');
81:            }
82:
83:            self::alias($config, 'username', 'user');
84:            self::alias($config, 'password', 'pass');
85:            self::alias($config, 'host', 'hostname');
86:            self::alias($config, 'result|detectTypes', 'resultDetectTypes'); // back compatibility
87:            self::alias($config, 'result|formatDateTime', 'resultDateTime');
Call stack ▼

dibi/dibi.php (160)	 source ►  DibiConnection->	 __construct (arguments ►)

app/bootstrap.php (41)	 source ►  dibi::	 connect (arguments ►)

www/index.php (22)	 source ►  require (arguments ►)

Nette Application ▼

Requests

array(0)
Presenter

NULL
Environment ▼

Constants ▼

SITE
""
WWW_DIR
"C:\www\blog_test\www" (20)
APP_DIR
"C:\www\blog_test\www/../app" (27)
LIBS_DIR
"C:\www\blog_test\www/../libs" (28)
TEMP_DIR
"C:\www\blog_test\www/../temp" (28)
NETTE
TRUE
NETTE_DIR
"C:\www\blog_test\libs\Nette" (27)
NETTE_VERSION_ID
20000
NETTE_PACKAGE
"PHP 5.2" (7)
E_DEPRECATED
8192
E_USER_DEPRECATED
16384
Included files ► (63)

$_SERVER

TMP
"C:/PROGRA~1/EASYPH~1.10/tmp" (27)
HTTP_HOST
"127.0.0.1" (9)
HTTP_CONNECTION
"keep-alive" (10)
HTTP_CACHE_CONTROL
"max-age=0" (9)
HTTP_USER_AGENT
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16" (120)
HTTP_ACCEPT
"application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" (90)
HTTP_ACCEPT_ENCODING
"gzip,deflate,sdch" (17)
HTTP_ACCEPT_LANGUAGE
"cs-CZ,cs;q=0.8" (14)
HTTP_ACCEPT_CHARSET
"windows-1250,utf-8;q=0.7,*;q=0.3" (32)
PATH
"C:\Program Files\PC Connectivity Solution\;C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\NVIDIA Corporation\PhysX\Common;C: ... " (631)
SystemRoot
"C:\Windows" (10)
COMSPEC
"C:\Windows\system32\cmd.exe" (27)
PATHEXT
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" (53)
WINDIR
"C:\Windows" (10)
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache/2.2.13 (Win32) PHP/5.2.10" (32)
SERVER_NAME
"127.0.0.1" (9)
SERVER_ADDR
"127.0.0.1" (9)
SERVER_PORT
"80" (2)
REMOTE_ADDR
"127.0.0.1" (9)
DOCUMENT_ROOT
"C:/www" (6)
SERVER_ADMIN
"admin@localhost" (15)
SCRIPT_FILENAME
"C:/www/blog_test/www/index.php" (30)
REMOTE_PORT
"49494" (5)
GATEWAY_INTERFACE
"CGI/1.1" (7)
SERVER_PROTOCOL
"HTTP/1.1" (8)
REQUEST_METHOD
"GET" (3)
QUERY_STRING
""
REQUEST_URI
"/blog_test/www/" (15)
SCRIPT_NAME
"/blog_test/www/index.php" (24)
PHP_SELF
"/blog_test/www/index.php" (24)
REQUEST_TIME
1300107603
HTTP request ▼

Headers

Host	127.0.0.1
Connection	keep-alive
Cache-Control	max-age=0
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16
Accept	application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding	gzip,deflate,sdch
Accept-Language	cs-CZ,cs;q=0.8
Accept-Charset	windows-1250,utf-8;q=0.7,*;q=0.3
$_GET

empty

$_POST

empty

$_COOKIE

empty

HTTP response ▼

Headers

X-Powered-By: Nette Framework
Content-type: text/html

Editoval jackm (14. 3. 2011 14:01)

Šaman
Člen | 2659
+
0
-

Mylím že ten config.neon je dobře. Zkoušel jsem ho u sebe a bez problémů.

Chybu ti nevyhazuje parser, ale DibiConnection. Máš aktuální dibi? Bohužel už není přibalené k Nette (tam jsem měl jistotu že jsou kompatibilní) ale stáhl jsem si aktuální a normálně mi to funguje. Kdysi jsem na tuhle chybu narazil a bylo to verzí Dibi, s neonem to nesouviselo..

Editoval Šaman (14. 3. 2011 15:15)

jackm
Člen | 54
+
0
-

No právě Dibi k Nette nebylo a já si stáhl včera úplně poslední 1.5RC, je ale možný že třeba to Dibi ještě neumí s tím config.neon a musím použít jinou verzi.

22
Člen | 1478
+
0
-

to s tím nijak nesouvisí, protože data pro dibi připojení ti naformátuje:

$connection = Environment::getConfig('database'); //při volání dibi::connect($connection)

btw: v tvém prvním příspěvku nikde nevidím, že by jsi se nějak k DB připojoval a celý vlákno nestíhám pročíst, jinak neon funguje bez problémů u mě.

jackm
Člen | 54
+
0
-

22:Díky moc chyba byla v tom, že jsem měl v bootu toto:

dibi::connect(Environment::getConfig('db'));

místo:

dibi::connect(Environment::getConfig('database'));

Díky mockrát VŠEM!

Editoval jackm (14. 3. 2011 17:35)