Použití databáze v aktuální verzi Nette

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

Zdravím všechny, už se to tu řešilo sice mockrát, ale jsem programátor začátečník a v nette se zatím jenom rozkoukávám. Zrovna řeším, jak v Nette pracovat s databází a našel jsem hromady řešení – dokumentace, fórum, examples v nette. Problém je v tom, že všude je něco jinýho a po tom co jsem zkoušel všechna možná řešení jsem se prostě s databází na localhostu nespojil.

Obracim se teda na Vás, jestli by sem někdo mohl postnout příspěvek, jak přesně má vypadat config.neon, bootstrap, případně další soubory, kam je potřeba něco připsat. Zkoušel sem i tutoriál z Planette na blog a na databázi jsem vyhořel, protože i když dělám všechno krok po kroku, prostě to nejde. Nevim jestli je to protože mi uniká nějakej základ nebo je to dělaný pro jinou verzi nette. Ideální by bylo udělat jako ukázku třeba statickej web s menu propojený s db, nebo blog aby bylo jasně vidět co a jak je potřeba udělat pro práci s databází.

Rád bych třeba viděl rozdíl v implementaci nette database a dibi, ale tim, že jsem tady našel spoustu řešení pro starší verze nette jsem už fakt zmatenej a nic mi nefungovalo.

Díky za případné odpovědi nebo rady
Robin

walker
Člen | 5
+
0
-

Od úplného nováčka, jak mi to funguje, rozhodně to není slovo boží a rozhodně se na tom nic neučte a radši to ani nepoužívejte, je to prostě jen to co mi funguje

taky sem to teď řešil ;-) snad to pomůže verze – nette 2.0.3 prefixed → sendbox

config.neon

upravit dbname na database – pozor je to tam 2× tak oboje :-)

bootstrap.php – přidat tady ten řadek – já ho mám před nastavením router

<?php
//database connection with dibi minified
dibi::connect(NEnvironment::getConfig('database'));
?>

do libs přidat soubor s dibi – dibi-minified

Editoval walker (28. 5. 2012 20:00)

Robin
Člen | 5
+
0
-

Díky walker, mohl bys postnout i jak přesně má vypadat ten config.neon? Zas je všude moc verzí a nevim, co přesně tam bejt musí a co ne… Až budu vědět co je absolutní základ, tak snad ta dokumentace o db bude srozumitelnější :)

22
Člen | 1478
+
0
-

@walker: prostuduj si ten link od Honzy. Tohle už není jaksi Nette way.

22
Člen | 1478
+
0
-

v sandboxu určitě není statické volaní dibi connection. Připojeni k DB je služba, která se definuje v config.neon a pak si ji pomoci DI předáváš, kde je potřeba. Takže bude lepší, když ten tvůj přispěvek smažeš, ať tu nemateš ostatní nováčky.

Filip Procházka
Moderator | 4668
+
0
-

Pokud jste líní číst a přemýšlet, tak vám Nette nedoporučuju.

birkof
Člen | 15
+
0
-

To HosipLan: To není o lenosti nováčků. To je o neschopnosti tvůrců Nette. Udělali super produkt, který je nepoužitelný protože dokumentace je tristní a tvůrci líní projekt dotáhnout do konce. Je to jak s Prestashopem. K tomu taky neexistuje pořádný manuál, takže často musím překládat třeba francousky napsané řešení problémů, na které mě líní guruové odkazují. Zdržuje to, je to hloupé, amatérské a svědčí to o lidech co vedou ten projekt.

LeonardoCA
Člen | 296
+
0
-

HosipLan, birkof: Trošku míň arogance by neškodilo. Mám rád lehkou ironii, ale urážky jsou myslím zbytečné.

Jan Tvrdík: Ano vše je tam pěkně popsané, ale je to opravdu pro nováčka nepoužitelné.

Jak už jsem psal jinde, sám jsem před 14 dny převáděl první projekt z nette 0.9.7 na 2.0.3 a vyřešení čistě konfigurace dibi vs nette mi trvalo 2 dny a desítky pokusů.

A ne nejsem ani líný ani neschopen přemýšlet. Ani mi nedělá problém pochopit psaný text.

Než jsem pochopil, co k čemu patří, pořád se mi nepochopitelně míchala konfigurace Database a dibi dohromady. A bylo to fakt frustrující.

Bylo mi jasné, že parametry jméno/heslo atd. mám mít v config.neon jen jednou, ale až jsem se snažil sebevíc, tak jsem tam po ty ty dva dny musel mít parametry podle příkladu v tom článku jak pro database ta pro dibi, aby mi dibi fungovalo. Když jsem smazal jednu nebo druhou sadu parametrů, tak mi to nešlo. Vyřešil jsem to, až jsem přesně pochopil každý řádek, konfigurace a to na základě toho, že jsem si pročetl zdrojáky Configurátoru a Compileru a přepsal si CompilerExtension pro dibi, aby podporovalo logování do souboru.

A byl jsem pěkně namíchnutý, že dibiNetteExtension ignoruje možnosti logování dibi, protože jsem potřeboval vyřešit problém a místo toho jsem se učil jeden den nette, abych byl schopen vyřešit chybu, na kterou jsem pak přišel za 5 minut (a na to čekal zákazník!)

Editoval LeonardoCA (31. 5. 2012 3:20)

Tharos
Člen | 1030
+
0
-

Ahoj,

já tedy budu asi ošklivý, ale mně přijde současná (nová) dokumentace super. Také mi přijde nadstandardní, jak je psané samotné Nette – vše důležité se dá pochopit ze zdrojových kódů. Že je to pro začátečníka hromada souborů a neví, za jaký konec je uchopit? Není přece nic jednoduššího, že si zprovoznit slušné IDE s debuggerem, uvařit si kávu, udělat si dvacet minut času a na sandboxu si odkrokovat úplně celý životní cyklus aplikace. Netvrďte mi, že spojením zmíněných pomůcek Nette nepochopíte (pokud znáte PHP, OOP a máte průměrný intelekt).

Další věc je, že prostě ne každý se musí za každou cenu věnovat programování. Netřeba věci lámat přes koleno a pokud někdo po týdnech snahy s pochopením Nette neuspěje, co třeba vzít to jako výzvu, že přeci existuje i spousta jiných odvětví, které by mu možná lépe sedly (i ve webařině).

Poslední odstavec nechci, aby vyzněl jako nějaké chvástání, ale… Když jsem se já před více než dvěma lety učit Nette (pozdim 2009), trefil jsem se na období, kdy byla dokumentace úplně rozsypaná (byla rozbitá veškerá navigace v dokumentaci, pamětníci si to možná vybaví). Ale šel jsem do toho po hlavě (v podstatě jsem podepsal smlouvu na projekt, který musel být nad Nette a měl jsem jasný deadline) a musím říct, že z ukázkových příkladů, zdrojového kódu a útržků dokumentace se mi Nette podařilo bez závažných obtíží pochopit. A to jsem pouze průměrně inteligentní bytost, nevěřím, že mám IQ větší než 100. Faktem ale je, že se programování a OOP věnuji již dlouho.

Ot@s
Backer | 476
+
0
-

Souhlas s Tharosem. Jen dvě myšlenky.

K dokumentaci – základ je super. Pak jsou tu ale věci, které můžeme nazvat pokročilými, které se ale frekvencí používání blíží těm základním, např. multiplier nebo možnosti konfigurace (porovnejte obsah fóra a dokumentaci). Tady spatřuji rezervy dokumentace.

K bariéře chápání podstaty Nette – Nette je hodně praktická věc postavená na teoretických myšlenkách (viz. návrhové vzory). K tomu všechno OOP, které je třeba opravdu pochopit/vžít. Ke spoustě věcem (pokročilejšího programování) je třeba znát podstatu fungování střev Nette, aby z něj vymáčkl maximum a přitom byl nadšen z toho, jak je to jednouché a efektivní. Samozřejmě existuje přístup, kdy Nette berete jako zdokumentovaný blackbox. To je ovšem pro pokročilé využití Nette konečná. Tímto se zpět dostávám k tzv. absenci „rozšířené“ dokumentace.

Editoval Ot@s (31. 5. 2012 11:48)

Filip Procházka
Moderator | 4668
+
0
-

„Za mě“ taky dokumentace nebyla nic moc. Učil jsem se jenom z kódu a jsem za to vděčný :) Každý den bylo několik „wow, tohle je super!“

Pánové, pokud má podle vás dokumentace mezery, poukažte na konkrétní problémy. S výroky typu „dokumentac je špatná“ běžte vítekam:) Pokud jste problém už vyřešili, můžete založit stránku v kuchařce, nebo se zeptat někoho „staršího“, jestli by nebylo vhodné zmínku doplnit přímo do docky.

Tharos
Člen | 1030
+
0
-

Ot@s napsal(a):
Tímto se zpět dostávám k tzv. absenci „rozšířené“ dokumentace.

Já osobně bych jen měl problém odhadnout, od jaké úrovně už začíná být nejlepší dokumentací vlastní zdrojový kód.

Mluvím z vlastní praxe, kdy dokumentaci rád využiji jako „úvod do problému“, ale jakmile mě zajímá něco hlubšího (například jak přesně validují některé validátory, jaké aktuálně máme k dispozici Latte makra…), jdu rovnou do kódu. Díky rámcové znalosti kódu jako celku a uživatelsky vyšperkovanému online Nette API je pro mě nalezení potřebné pasáže většinou otázkou několika okamžiků.

Otázkou je, kolik programátorů postupuje přesně takhle? Já myslím, že z řad pokročilejších snad většina. A je-li to tak, sepsání nějaké hlubší dokumentace by IMHO stejně nestálo za vynaložené úsilí (myslím plošně – nenamítám, že by se nenašla témata, která by si lepší zdokumentování skutečně zasloužila).

Ještě trochu jinými slovy: myslím si, že od určité hloubky by programátoři měli být výslovně motivováni ke studiu vlastního kódu frameworku. Příliš detailní dokumentaci si odvažuji označit až za kontraproduktivní :). (Viz zde zmíněný „dobře zdokumentovaný blackbox“).

Ascaria
Člen | 187
+
0
-

HosipLan napsal(a):

@**Ascaria**: nespletl sis téma?

No mělo to ukázat konkrétně jak například řešit databázi pomocí služby v neonu. Ale když neukazuje, tak smazáno.

Filip Procházka
Moderator | 4668
+
0
-

@**Ascaria**: Jé promiň, tak ono se zdá, že jsme si téma nakonec spletli my :) Btw, příště bych raději na takové kompletní kusy kódu použi gist ;)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Trochu si přihřeju polívčičku… o Multiplieru zde. Jinak v té Kuchařce je kupa věcí, v Dokumentaci popsáno ohromné množství věcí.

Ad LeonardoCA: v čem je to pro nováčka nepoužitelné? V čem by se to dalo vylepšit, aby i nováček to pochopil?