Nette – Quick Start

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

Ou, tak to je ovšem téma na knihu, ne na quick start.

redhead
Člen | 1313
+
0
-

Jen takový postřeh – nemělo by v tom diagramu o MVP© být i datová šipka z modelu na view? Mám pocit, že i David na zdrojaku to tak má. Oba – View i Presenter – vědí o modelu, resp. si mohou tahat jeho data. Není-liž pravda?

Inza
Člen | 330
+
0
-

Ad redhead: Jo, ale to je Davidův fail:-) – Tak to fungovat nemá:-) – nebo dle mého názoru nemá.

Jinak já vím že je ten QS trošku víc obzáhlý než bu měl být:-) – ale je to draft. až bude done, osekáme ho a dáme to na nějaké podstranky a z QS na to dáme linky…

Ale napřed musíme mít ten draft. Když něco vidíš napsané, napadne tě jak to napsat lépe, výstižněji, kratšeji. Když ale vidíš bílo nenapadne tě jak to napsat lépe ale jen jak to napsat…tudíž:) that's the way:-)

A jen počkejte na část o Modelu, ta je má oblíbená:-)

Honza Marek
Člen | 1664
+
0
-

Soubor, jehož název začíná zavináčem, nejde vložit do jiného. Právě pomocí zavináče Nette Frameworku jasně sdělíme, která šablony jsou ty „základní“, které nelze nikam vložit.

Tohle se zakládá na pravdě?

Jan Tvrdík
Nette guru | 2595
+
0
-

Ne, Inza šíří bludy :) Zavináč je tam proto, aby to nešlo použít jako šablona pro view a nikdo nemohl třeba zavolat http://example.com/homepage/layout.

Inza
Člen | 330
+
0
-

Počkejte, vždyť to je jedno a to samé ne?:-)

Jestli jsem to nějak povoral tak se omlouvám – já QS píšu, faktické a jiné bugy opravujete vy:-)

Operavíš to Honzo pls?:-) Nebo to mám změnit já?:-)

Honza Marek
Člen | 1664
+
0
-

Jde o to, že u tebe se to tváří, že nejde zavolat třeba {include @paticka.phtml}. A radši to oprav sám, já nevim jak je to na wiki s nějakejma zámkama proti editaci.

Editoval Honza Marek (2. 3. 2010 8:23)

Inza
Člen | 330
+
0
-

Oki – a ono to takhle nejde includnout?:-)

Jak to tedy funguje? Zavináč neříká tedy že to nejde includnout do jiné, ale že to nejde použít jako „šablona akce“ ?

Honza Marek
Člen | 1664
+
0
-

Ano, protože nejde nacpat do url www.example.com/presenter/@akce.

Lkor
Člen | 4
+
0
-

Několikrát denně sleduji Quick start (jestli se náhodou neobjeví něco nového) a zatím bohužel marně. :-( Vím, dá to zcela jistě mnoho práce, ale když ono je to opravdu super a těším se na pokračování.

A ozývám se také z toho důvodu, že toto vlákno se začíná pomalu, ale jistě, posouvat do hlubin historie.

Majkl578
Moderator | 1364
+
0
-

Lkor napsal(a):

A ozývám se také z toho důvodu, že toto vlákno se začíná pomalu, ale jistě, posouvat do hlubin historie.

To se mu nepovede, na to se o něj až moc zajímám. :)

Věřím tomu, že to Inza dodělá.

Editoval Majkl578 (3. 3. 2010 19:23)

Majkl578
Moderator | 1364
+
0
-

Už jen necelých 52 hodin.

Mimojiné, opakuje se už několikrát zažité:

Inza 1. 3. 2010 napsal:

Peklíčko, Inza jde dokončit QS. Celý a tento týden. Templaty dnes.

Holt asi chápeme slovo „dnes“ jinak. Musím ale uznat, že škola s tak dlouhými přednáškami je asi zajímavá.

Lkor
Člen | 4
+
0
-

Majkl578 napsal(a):

Holt asi chápeme slovo „dnes“ jinak. Musím ale uznat, že škola s tak dlouhými přednáškami je asi zajímavá.

Tak třeba nás Inza příjemně překvapí a zveřejní celý hotový QS až v neděli večer před uzávěrkou. ;-)

Ale také se bojím, že to dopadne jak v předchozím případech, kdy skutek – utek. A to bych byl opravdu nerad, protože jak už jsem tu zmiňoval, Inzův styl se mi líbí a bojím se, když se díla ujme někdo jiný, aby QS neztratil na kvalitě.

Majkl578
Moderator | 1364
+
0
-

Lkor napsal(a):

bojím se, když se díla ujme někdo jiný, aby QS neztratil na kvalitě.

Abych pravdu řekl, lepší o něco nižší kvalita než nic.

Endrju
Člen | 147
+
0
-

Inza napsal(a):

Pokud se mi jej během tohoto týdne nepodaří do dělat, klidně to dělejte někdo jiný. Termín je neděle 7. března 23:59:59.

Inzo, zvladas to? Nebo uz mas za sebe nejakeho nahradnika, kt. to dopise? Moc casu uz po pravde neni, a to nejsou dokoncene ani sablony, ktere jsi chtel dopsat po prednace… (to uz je taky nejaky cas zpet)

Absence QuickStartu je docela blba a bylo by skoda s tim seknout, kdyz uz jsi tak pekne zacal..

Inza
Člen | 330
+
0
-

Takže, jak jste si jistě všimli, deadline opět uplynula a QS hotový není.

Bohužel mi do toho vlezlo několik urgentních věcí.

Každopádně, vím že na QS všichni urputně a zuřivě čekáte a že je to nejdůležitější věc dokumentace atd. Ale já jsem na tom s časem bohužel takto bídně.

QS bych dokončil velice rád, ale skutečnost je bohužel taková že nemám reálně čas se tomu věnovat více než jeden večer v týdnu.

Tudíž máme dvě možnosti. Pokud na QS tak moc spěcháte a je zde někdo, kdo by se chtěl prací ujmout, nechť tak učiní. Pokud se zatím nikdo takový nenajde a nebo pokud budete chtít, budu v tom pokračovat – ale nejsem schopen vám reálně dát nějaký termín. Prostě mám málo času.

A nechci být pro Nette komunitu překážkou.

Jak jsem řekl, rád bych QS dokončil, ale nemám tolik času abych ho mohl dokončit tak rychle jak potřebujete. Tudíž, třeba bude někdo úspěšnější a rychlejší než já.

Pokud by se někdo takový našel, rád mu předám svou ideu ohledně zbývajících částí QS.

Inza
Člen | 330
+
0
-

Endrju napsal(a):

Inzo, zvladas to? Nebo uz mas za sebe nejakeho nahradnika, kt. to dopise? Moc casu uz po pravde neni, a to nejsou dokoncene ani sablony, ktere jsi chtel dopsat po prednace… (to uz je taky nejaky cas zpet)

Absence QuickStartu je docela blba a bylo by skoda s tim seknout, kdyz uz jsi tak pekne zacal..

Ne, bohužel to evidentně nezvládám. A co je horší QS není jedinou věcí, kterou jsem chtěl mít dnes z minulého týdně zvládnutou…

Inza
Člen | 330
+
0
-

Šablony ještě dodělám, už z nich chybí jen kousek.

Co se týče dodělání zbytku, je to na vás, nechte si to projít hlavou a pokud chcete aby to dělal někdo jiný, předám mu žezlo, pokud ne, budu pokračovat. Je to na vás.

Ola
Člen | 385
+
0
-

A co kdyby někdo udělal nějaký zákl. Draft a ty ho potom upravil?

Inza
Člen | 330
+
0
-

Klidně:-) – hlavně ať to nemá deadline… – Ne, jasně, až něco bude, klidně to ASAP zreviduji.

Jinak tady je pro potenciální zájemce sada mých myšlenek:

  • Co budeme potřebovat? – done
  • Adresářová struktura – done
  • Vytvoření databáze – done
  • Vytvoření presenteru – done
  • Vytvoření šablony – skoro done, dodělám já
  • Vytvoření modelu – zde najde čtenář odpovědi na: Co je to Model, Co je to model v Nette Frameworku, Vytváříme model → na konci této části čtenář ví co je to model, ví proč je model důležitý a ví základní pravidla pro tvorbu modelů (eg. že model má být zvenku blackbox, atd), po přečtení má čtenář napsaný model našeho todolistu (což je v mém pojetí třída Todo a třída TodoManager)
  • Hezčí šablony – zde najde čtenář odpovědi na: že šablonovací systém nette frameworku má filtry, že tím nejdůležitějším filtrem je Lathe filtr, popis lathe filtru: že má lathe filtr tzv „makra“ a „modifikátory“, jak se zapisují, jak lathe filtr funguje (stručně). Jak upravit naši šablonu tak, aby zobrazila data z modelu (vypsala seznam todoček). Po přečtení má čtenář upravenou šablonu akce tak, aby dovedla vypsat data z modelu. šablona layoutu je vytuněna tak, aby byla lepší. Dále jsou vysvětlena všechna použitá makra lathe filtru.
  • Zobrazení tabulky – zde se čtenář dozví jak má upravit akci show presenteru Todolist tak, aby načetla data z modelu a předala je pohledu. Poté se čtenář dozví jak presenteru přidat akci add a edit a delete. Po přečtení této části má čtenář funkční aplikaci, která umí vypsat todolist, přidávat, upravovat a mazat todočka. A chápe jak toho dosáhl.
  • Stránkování a řazení – V této části čtenář aplikaci upraví tak, aby uměla stránkovat když vypisuje moc todoček (s tímhletím pak od vás budu potřebovat pomoct i když bych to psal já sám, páč nevím jaký je optimální způsob jak to udělat). A poté naučíme naši aplikaci výpis todoček řadit (resp. měnit pořadí todoček pomocí tlačítek UP a DOWN – neajaxově). Po přečtení této části má čtenář funkční aplikaci která umí stránkovat a řadit todočka.
  • Přidáváme AJAX – Do aplikace přidáme AJAX a ukážeme čtenáři jak je to v Nette snadné. Co nejvíce to budem ožné využijeme stávající funkčnost na serveru. Když nám bude fungovat AJAX na přidávání, editaci a mazání (editace bude přes jQuery jeditable), tak pomocí draggable přidáme schopnost přetahování todoček pomocí myší (za účelem přerovnání), podobně jako to davídek udělal na webexpu. Po přečtení má čtenář opět funkční aplikaci, která umí výše popsané a chápe jak toho dosáhl. A připadá mu to hrozně cool a easy.
  • Tvoříme komponentu – celou dosavadní aplikaci přetvoříme do znovu použitelné komponenty TodolistControl. Čtenář chápe jak se to dělá a ví zásadní věci ohledně tvorby komponent – továrničky, šablony komponenty, atd.
  • Kudy dále? – zde se se čtenářem rozloučíme a říkáme mu, kde má pokračovat ve svém studiu Nette Frameworku. Něco ve stylu: Jako další si přečti …, potom … a když ti to ještě nebude stačit tak existuje … a … A pak je tu samo fórum tak se koukni i tam, máme super coo addony, atd.

Každá část, kromě kudy dále, má na konci „Co bychom si měli zapamatovat?“

Když tohleto celé bude done, tak se to celé znovu projde a zjednoduší se to (ale se zachováním informačního obsahu).

Až i to bude done, tak se to projde znovu a co půjde se vyhodí jinam, do jiné části dokumentace a sem se dá jen link typu: „pokud tě zajímá jak to a to funguje, tak se podívej na XXX“ a to XXX je link do dokumentace. Tyhlety prolinky se dají to [.tip] a [.note]

Při psaní QS nezapomeňte na hlavní úkoly, které při tom máte:

  1. čtenář ještě neví jestli je Nette way, vy mu musíte vysvětlit že ANO!
  2. čtenář vůbec netuší k čemu by mu mohlo Nette být dobré, říká si „co to ten framework vlastně je?“ „proč bych to měl používat?“ a vy mu to musíte vysvětlit.
  3. čtenář chce skrze QS získat informace, ale nechce být jimi zahlcen. Takže chce málo informací, ale zase se chce něco dozvědět a nechce aby QS byl je o tom „Nette je super, používej ho!“, chce vědět proč ho má používat → uspokojit ho vůbec není jednoduché.
  4. je velmi pravděpodobné, že po přečtení QS se čtenář hned do něčeho pustí a že bude mít nechuť číst něco dalšího dokud nenarazí na problém. Řada čtenářů přečte jen QS a potom při jekémkoliv dalším problému jde hned prudit do fóra. Takže čím víc věcí čtenáři prostřednictvím QS vysvětlíte takříkajíc bez jeho vědomí, tím lépe pro nás (bude méně prudit) a lépe pro něj (pokud mu to půjde, bude si o Nette Frameworku říkat jak je super cool).
  5. Nezapomeňte že ty různé .[note] a .[tip] mají úžasnou moc a využívejte je.
  6. .[caution] používejte málo, jen když je to fakt důležité (ta hláška vypadá pak trošku jako error, možná by stálo za to zvážit upgrade jejího vzhledu)

Tak, ještě jeden OT: u stránky o šablonách mám bug, kdy mi Texy nahrazuje za email cestu k šabloně layoutu, což je bug, jak to vyřeším a opravím? Nebo to opravíte někdo jiný?

Tak toliko asi mé myšlenky ohledně QS, pokud někdo máte zájem převzít po mě žezlo, ozvěte se, pokud se nikdo takový nenajde, budu pokračovat – ale berte ne vědomí že rychlost růztu QS nebude nijak valná a rozhodně se nic nestane zítra… Prostě bohužel nemám tolik času kolik bych si přál na věci, které mě baví…

Edit: Jo ještě vlastně jeden potřeh: pro ukázky kódu používejte pro modely a presentery /--code php a pro šablony /--code html

Ola
Člen | 385
+
0
-

Rád pomohu, ale nerad bych přebíral žezlo – spíše když se budu nudit, budu se snažit dopsat některý z chybějících dílů. Jelikož ale nejsem žádný spisovatel, budu rád, pokud si to po mně někdo přečte a případně upraví.

Ola
Člen | 385
+
0
-

Tak jsem se pokusil o něco k modelu, mohl by ses na to kouknout a upravit to? https://doc.nette.org/cs/quickstart

Díky

_Martin_
Generous Backer | 679
+
0
-

Sice to není model, ale jinak pěkné=)

Ola
Člen | 385
+
0
-

Co jiného bys do tohoto konkrétního příkladu dal? Nějakou validaci?

Editoval Ola (8. 3. 2010 20:00)

_Martin_
Generous Backer | 679
+
0
-

Nejde o příklad, ale o to, že co popisuješ, není model (ač valná většina vývojářů bude přesvědčená o opaku). Protože to je rozsáhlejší téma, odkážu třeba na velmi dobrou diplomovou práci Jana Tichého.

Ola
Člen | 385
+
0
-

Díky, pročtu si to.

Inza
Člen | 330
+
0
-

Ole, super nástřel, ale… chce to zrefaktorovat:-) – velmi:) – zkusím s tím hned jak budu mít trochu času něco udělat.

Několik rychlých postřehů:

  1. u šablon jsme data nezobrazovali to teprve budeme v části hezčí šablony a zobrazení tabulky.
  2. dibi už máme v aplikaci nainstalované
  3. model není to o čem píšeš:-) – správně jsi vytvořil třídu TodoManager a Todo, ale už jsi zcela nepochopil co to model je – nijak ti to nevyčítám:-), poslouchej následující.

ten proces toho co se skrývá za tám temrínem model z MVC je následovný:

  1. Model z MVC lze chápat jako velký blackbox, který neposkytuje vnějšku žádné informace o tom, jak pracuje uvnitř.
  2. Tento model nám na venek poskytuje známé API pro práci s daty – to API jedna ku jedné reflektuje use casy aplikace (tedy v tomto API jsou obsaženy metody, které reflektují chování aplikace tak, jak ji budou uživatelé používat) – v našem případě tedy nebude mít pouze metody create, retrieve, update a delete, ale něco jako metodu createTodo(string $text), moveTodo(Todo $todo), atd. Je zde jedna velmi důležitá věc, kterou je třeba pochopit:

nedívej se na model jako na hromadu tříd, které jsou jen objetovým obalem nad SQL dotazy, to je ORM, model je něco jiného. Přesněji:

Model z MVC je černá skříňka, která v sobě ve skutečnosti obsahuje několik vrstev:

  1. Business Logiku (někdy také model, ve smyslu model systému (neplést si s modelem z MVC), tedy jeho reprezentace, model systému je abstrací reálného svěšta do počítače, naše aplikace má nějakou svoji roli v reálném světě – todolist může fungovat i bez počítače a model aplikace – tento model aplikace – je zjednodušením procesů, které v rámci todolistu probíhají v reáném životě i bez počítačů – a tento model je zjednodušením procesů a entit reálného světa tak, aby bylo snadné a efektivní je uložit v počítači) – a právě tato business logika bude tvořena tou třídou Todo a TodoManager
  2. Pod business logikou se skrývá ORM (Object-Relational Mapping), nebo TDG (Table Data Gateway) (http://www.google.com/search?…) logika (příkladem ORM je např. Doctrine, které obsahuje i svůj vlastní DBAL, nebo Honzův Ormion, příkladem TGD je např takový ten DatagridModel, který Roman dodával k datagridu)
  3. Pod touto logikou se skrývá DBAL (DataBase Abstraction Layer) – to je např. Dibi, nebo ta věc, kteoru na poslendí PS prezentoval Jakub (i když to jeho je DBAL, který umí data pouze vypisovat)
  4. A úplně vespod je konečně databáze (MySQL, PostresSQL, Oracle, …)

To, co jsi v článku vytvořil jako že je to model bylo ve skutečnosti právě TDG. Model nikdy nedědí od něčeho co patří do DBAL, to co dědí od DBAL je nutné TDG nebo ORM. Rozhodně ne model.

Ptáte se k čemu ten model je? Nechápete stále co to je? Pro velmi triviální aplikace – kterými náš todolist bezesporu je, bude ve skutečnosti model mít více méně metody, které reflektují ono přidávání, updatování a mazání – protože to je přesně to, co s naší aplikací useři budou dělat (a co s todolistyu dělají i když nemají počítač), ale mohou a jsou systémy, pro které to neplatí. Velmi dobrým přáíkladem takového systému je jakákoliv hra, nebo nějaký program, který je statefull – to znamneá že uživatelé interakcí s ním mění jeho stav a je žádoucí aby byl tento stav persistentní napříč požadavky. Ale model má své uplatnění i u komplexních systémů, kteér jsou bezstavové. Často přidáváte určitý druh dat a v závislosti na tom je třeba automaticky přidat další relevantní data.

Modelový příklad: shodou okolností aktuálně pracuji na jendom aukčním systému, kde jsou produkty, jejich exempláře a aukce – přičemž každá aukce má jako svůj předmět vždy exemplář určitého produktu.

Model správy aukcí, bude bezesporu mít metodu pro přidání aukce. Ale tato metoda kromě vytvoření a uložení entity samotné aukce také vytvoří nový exemplář produktu, který je nastaven jako předmět aukce, tomuto exempláři nastaví ke které patří aukci a rovněž jej uloží.

Ano, toto chování lze implementovat i tak, že budu mít ProductManager, ProductExemplarManager a AuctionManager v potom v akci presenteru zavolám postupně všechy tyto managery, ale to je chyba.

Správně to má být AuctionManager, kdo bude volat další managery. V každé akci presenteru bych měl zavolat vždy právě jednu metodu jednoho manageru.

Celý ten můj slavný model musí bez jakékoliv změny fungovat i tehdy pokud ho z aplikace vyrvu a spustím přes CLI (Command line interface).

O tom to je. Presenter je jen takový obal na modelem, veškerá funkčnost aplikace je v něm.

Takže pokud něco jako model ve svých aplikací nemáte, tak je to fail. Jediná chvíle, kdy by to fail možná nebyl by byl stav, kde by vaše aplikace byla tak primitivní, že by model byl skutečně jenom jedna ku jedné volání ORM, či TDG vrstvy, to ale u prakticky žádné aplikace není a ani u našeho todolistu díky metodám moveTodo neplatí.

Jinak validace je také samozřejmě součástí modelu:-) a i v našem todoslitu bude.

Jinak olo ale moc děkuji:-) Odvedl jsi kus dobré práce a teďka to jen trošku zdokonalíme a bude:-)

Jen pro informaci orientačně, zajímalo by mě, kolik času ti napsání toho zabralo?

Inza
Člen | 330
+
0
-

Tu honzovu diplomku prosím neberte opět jako dogma, stejně jako to co jsem napsal výše (to mé už vůbec protože je noc a je tam plno překlepů a vět, které by ve dne šlo určitě přeformulovat).

Na tyhlety věci okolo modelu (jak toho z MVC tak i toho „modelu systému“) existuje spousta názorů a spousta učených lidí se na detailech nemůže shodnout Martinem Fowlerem počínaje a borci okolo GOF a problematikou SW architektur konče.

Honzova diplomka je hezky zpracovaná bohužel je velmi silně zaměřená apriori na web. Např spousta lidí právě z komunity JEE, ze které i on často čerpá by ve všem nesouhlasila. U velkých SW projektů se řeší jiné problémy, a torchu jinak a tak, ale to je OT…

BTW je tu ještě někdo, kdo tu hozovu diplomku jako já četl celou?

Ola
Člen | 385
+
0
-

Díky za objasnění – asi jsem si nevybral zrovna nejlepší část, ale chtěl jsem aby tam něco bylo. Refaktoring třeba určitě je, pokud ho uděláš, budu moc rád.

Ad čas – dle času u příspěvku tady na fóru hodinu (±).

Editoval Ola (9. 3. 2010 5:53)

_Martin_
Generous Backer | 679
+
0
-

Konkrétněji: v TODO listu může mít úkol metody isDone, markAsDone, atd… Metoda markAsDone může

  • nastavit nějaký atribut na TRUE,
  • zaznamenat datum dokončení,
  • změnu stavu rovnou uložit.

A po označení úkolu jako splněného už třeba nepůjde změnit jeho název a zadání.

P.S. Na základní rozlišovací úrovni Model-View-Controller je úplně jedno, jestli se model dělí na vrstvy či nikoliv. V praxi je asi výhodné to používat, ale ikdyby jsem v modelu volal rovnou SQL dotazy, tak to pořád může být model z pohledu MVC.

Inza napsal(a):

BTW je tu ještě někdo, kdo tu hozovu diplomku jako já četl celou?

Zatím jen části, ale mám to v plánu ;)

P.S. Co myslíš tím „neplést si s modelem z MVC“?

Editoval _Martin_ (9. 3. 2010 8:10)

Ola
Člen | 385
+
0
-

Zkusil jsem trošku pohnout s další částí QS, hezčími šablonami.

Mikulas Dite
Člen | 756
+
0
-

Je to prima, imho je to z toho dobře pochopitelné, ale zvážil bych změnu příkladu u dědičnosti. Je to možná malinkej rozdíl, ale vadí mi v title bloky, chceme tam spíš text, tedy {$title} radši než {include #title}. V QS bych spíš jako příklad zvolil něco na způsob

<ul>
{block menu}
	<li>o nás</li>
	<li>produkty</li>
{/block}
</ul>
<ul>
{block menu}
	<li class="selected">o nás</li>
	<li>produkty</li>
{/block}
</ul>

případně lepší příklad.

\\Edit: .. a zavináčová magie? Doufáme, že se jí zbavíme než bude QS hotové? :-)

\\Edit: ještě u zmínky o escapování by bylo vhodné to formulovat tak, že to funguje u všech stringů, tedy i {!=‚<b>boldem</b>‘}, což je něco jiného než stačí znak $ prefixovat znakem !.

Editoval Mikulas Dite (13. 3. 2010 16:27)

Ola
Člen | 385
+
0
-

Ad. příklad: to by asi bylo lepší řešit přes ifCurrent, titulek je IMHO typičtější – myslím, že by měl být uveden v šabloně v podobě textové (podobně jako je tomu v Akrabatu např.) – šablona sama by si měla určovat jak se vykreslí, presenter by ji do toho neměl kecat (kromě toho, že jí dodá podklady). Pokud také kodér otevře .phtml, asi se bude cítit více „ve svém“, než kdyby se hrabal v presenteru (ačkoliv v tomto případě je to jeden řádek)

Ad. zavináčová magie: té bych se věnoval až v části s AJAXem, zatím se dá použít experimentální verze snippetů, pro todolist by měla stačit :)

Ad. escapování: ok, změnil sem to

Editoval Ola (13. 3. 2010 17:15)

Ola
Člen | 385
+
0
-

Rozhodl jsem se předepsat si aplikaci,

http://nette-quickstart.hys.cz

zatím bez stránkování a bez mazání s vypnutým javascriptem. Stay tuned.

Ola
Člen | 385
+
0
-
Ola
Člen | 385
+
0
-

A další: https://doc.nette.org/…tion/routing

.. Příští díl je možná i poslední (protože todolist zrovna není znovupoužitelná komponenta) :)

Inza
Člen | 330
+
0
-

Todolist rozhodně je znovupoužitelná komponenta. Ta poslední část je IMHO důležitá.

Za další, všechno co jsi napsal vyžadaduje refaktorovat a tak – je to kus skvělé práce ale přeci jenom to ještě není ta finální podoba, prosím uveď to tam – podobně jako je to udělaná u toho dílu s modely.

Jinak aplikace super, skoro takto jsme to měl na mysli i já.

Až budu mít čas tak se na to mrknu a zrefaktoruju pár věcí.

EDIT: Ale jinak jako úplně SUPER:-) – jsi borec:-), máš pochvalu:-)

Ola
Člen | 385
+
0
-

Inza napsal(a):

Todolist rozhodně je znovupoužitelná komponenta. Ta poslední část je IMHO důležitá.

Za další, všechno co jsi napsal vyžadaduje refaktorovat a tak – je to kus skvělé práce ale přeci jenom to ještě není ta finální podoba, prosím uveď to tam – podobně jako je to udělaná u toho dílu s modely.

Jinak aplikace super, skoro takto jsme to měl na mysli i já.

Až budu mít čas tak se na to mrknu a zrefaktoruju pár věcí.

EDIT: Ale jinak jako úplně SUPER:-) – jsi borec:-), máš pochvalu:-)

Ad) znovupoužitelnost: máš pravdu, bylo brzo ráno když sem to psal, zamyslel jsem se na blbou situací ;)

Ad) refaktoring – s tím počítám, dal jsem tam upozornění, ale note (ne caution)

Jinak díky :) pokud něco poupravíš budu jedině rád.

Editoval Ola (14. 3. 2010 9:07)

Lkor
Člen | 4
+
0
-

Zdravím,
Nette framework sleduji teprve pár týdnů a jelikož nebylo a zatím ani není (maturita) moc času, ještě jsem se do hlubokých vod tohoto frameworku tak úplně neponořil. Dnes jsem více či méně měl čas a prošel jsem si některé kapitolky Quick startu. Veliký dík patří především Inzovi, protože veškeré jeho kapitoly jsou z pohledu nováčka Nette frameworku absolutně pochopitelné a dobře čtivé.

Avšak mám pár připomínek a dotazů:

1. V kapitole „Vytvoření šablony“ při tvorbě šablony akce by bylo dobré upřesnit po vytvoření této šablony pojem „spustit webovou aplikaci“. Jde o to, že pokud zadám do url: „localhost/Todolist/document_root“ – zobrazí se původní šablona default.phtml, která se pojí s Homepage presenterem. Takže buďto navrhuji do QS poznamenat, že se aplikace má spustit vložením url: localhost/Todolist/document_root/Todolist/show" a nebo uživatele navigovat do bootstrap.php a tam upravil defaultní routy.

Btw. k bodu 1. šablona show.phtml se nezobrazí, pokud na serveru není povolený mod_rewrite. Na toto jsme přišli až s kamarádem, který už v Nette nějaký ten pátek dělá. Určitě by bylo dobré o tom zmínit v QS.

Za 2. chtěl bych poprosit o doplnění kapitoly „Vytvoření modelu“. Sice jsem ji prolítl zatím jen letem světem, ovšem chybí mi tam teoretické pasáže, které člověku usnadnily pochopení kódu. Jinak jsem zatím se všemi kapitolami velmi spokojen a z pohledu nováčka musím říct, že jsou na velice vysoké úrovni.

Díky

Editoval Lkor (14. 3. 2010 19:29)

Majkl578
Moderator | 1364
+
0
-

Supr práce Ola. Prošel jsem pár částí QS a fixl nějaké problémky v typu a coding standardech. Konečně se to pořádně pohlo! :) Do praktického testování jsem se nepouštěl – to si nechám na středu pro své studentíky (které učím Nette). Muaha.

MIKI
Člen | 34
+
0
-

Zdravim,

Vsimam si, ze toto tema je dlho nepouzivane. Prechadzam si Quickstart Nette (pekne sa to cita a rozumie) a nachadzam „chybicky krasy“. Mozem o tychto chybach napisat tu, alebo zalozit samostatny topic?

Panda
Člen | 569
+
0
-

Quickstart se sice bude předělávat, viz Aplikace pro Quickstart – brainstorming, ale určitě to popiš. Pokud nebudeš psát elaboráty, tak můžeš i sem, jinak by bylo asi vhodnější založit samostatné téma a případně o tom rozvinout nějakou diskuzi. Budu rád za jakýkoliv návrh/nápad/podnět, který mi pak pomůže při psaní nového quickstartu. Koneckonců, quickstart má být především pro Vás…