Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Nette Framework: MVC & MVP

blizz.boz
blizz.boz (neregistrovaný) ---.95-102-24.t-com.sk
24. 3. 2009 3:00 Nový

more

celé vlákno
david je best ma dobry flow, skills, dava dobre freestyly ma dobre produkcie proste je to pan
Abraxis
Abraxis (neregistrovaný) 213.29.218.---
24. 3. 2009 4:54 Nový

Problem MVC

celé vlákno
Muj problem s MVC pristupem je ten, ze casto je velmi spatna podpora aktivni komunikace ze strany modelu k view. Zni to jako paradox, ale proste se jedna o klasicky pripad, kdy treba mam v GUI tabulku s daty (ted mam na mysli klasickou, ne-webovskou aplikaci) a model je navazany at uz na databazi nebo treba zobrazuje obsah slozky. Treba ve Swingu je docela porod, aby model notifikoval (vsechny) pohledy, ze doslo ke zmene - protoze holt MVC ocekava, ze veskere zmeny modelu budou iniciovane z controlleru.

Nebo proste jenom nevim jak na to?
uživatel si přál zůstat v anonymitě 212.27.204.---
24. 3. 2009 7:39 Nový

Re: Problem MVC

celé vlákno
Nevim jestli jsem to pochopil spravne, ale v cem vam nevyhovuje Observer-Observable?
Michal Krause aura:46
24. 3. 2009 9:34 Nový

Re: Problem MVC

celé vlákno
S výhodou lze použít eventbus - model (nebo kdokoliv jiný) vyvolá událost a kdo chce ať si jí naslouchá a podle toho koná, čili jednotlivé komponenty o sobě nemusí vůbec vědět (loose coupling). Tato konkrétní implementace má i speciální podporu pro Swing, která zajišťuje doručování událostí ve správném vlákně.
Milan Čermák
Milan Čermák (neregistrovaný) ---.sun.com
24. 3. 2009 11:35 Nový

Re: Problem MVC

celé vlákno
Otázkou je, zda má zde popisovaná knihovna Nette nebo i Swing ve svých widgetech a view pro zpracování událostí (nebo pattern Observer) podporu.

Osobně si myslím, že v uvedeném příkladu by bylo možné Model a Presenter sloučit. Podle mého chápání MVC oba představují model. Bohužel ale postrádám právě pattern observer, který by zde měl sloužit k notifikacím View, když se změní proměnná $money. Právě proto je potřeba ručně v kodu sáhnout do template a změnit hodnotu (metoda insert).
Luboš Horáček
Luboš Horáček (neregistrovaný) ---.in.softeu.cz
24. 3. 2009 16:05 Nový

Re: Problem MVC

celé vlákno
O tom sloučení by to nebyl zas až tak dobrá nápad, protože to je ta halvní výhoda tohoto návrhu, logika automatu je v Modelu, ale její prezentace v Prezenteru, a když budu chtít změnit například jazyk automatu, vyměním pouze prezenter a nechávám model.
Milan Čermák
Milan Čermák (neregistrovaný) ---.sun.com
25. 3. 2009 8:58 Nový

Re: Problem MVC

celé vlákno
Pořád ten důvod nevidím. V uvedeném případě je chování automatu natolik jednoduché, že by bez problémů šlo do vložit do třídy Prezenter. Pokud by mělo dojít ke změně, patrně bych třídu Prezented upravoval (ve vašem příkladu bych změnil patřičné texty). Pokud by šlo o větší změnu (možnost fungování automatu v různých jazycích), použil bych nějaké sofistikovanější řešení (opět na příkladu jazyka by to bylo nejspíš na bázi překladových katalogů).
Ano, rozumím, že logika fungování automatu může být složitější a bude se muset skládat z vlastních tříd a datových objektů, které mezi sebou budou komunikovat. Tyto objekty pak budou tvořit datový model, což je ale jiný pojem než Model v návrhu MVC.
Aleš Roubíček
Aleš Roubíček (neregistrovaný) 193.165.135.---
25. 3. 2009 10:02 Nový

Re: Problem MVC

celé vlákno
Klasický problém programátorů. Všechno jde napsat odzhora dolů. Otázka, je, jak je to udržovatelené a znovupoužitelné. Principy dobré objektového návrhu tu nejsou pro nic za nic. ;)
Milan Čermák
Milan Čermák (neregistrovaný) ---.sun.com
25. 3. 2009 10:22 Nový

Re: Problem MVC

celé vlákno
Nejspíš se příliš zaobírám popsaným příkladem. Mým cílem bylo a je říct, že chování automatu, popsané v uvedeném příkladu třídou Model, je datovým modelem, což je něco jiného než "model" v definici MVC. Definici modelu splnuje třída MachinePresenter (představuje model chování automatu pro uživatele).
Problém, který pak v příkladu vidím, je těsná vazba modelu na view (metoda insert), což je přesně to, čemu se MVC model snaží vyhnout.
Borek Bernard aura:66
25. 3. 2009 10:53 Nový

Re: Problem MVC

celé vlákno
Model z ukázky rozhodně odpovídá definici modelu v architektuře MVC (a asi by v něm měla být i proměnná $money) a MachinePresenter je zase typickým presenterem v architektuře MVP. Podle mého názoru je ukázka v pořádku.
Jan Havrda
Jan Havrda (neregistrovaný) ---.static.bluetone.cz
24. 3. 2009 9:40 Nový

Re: Problem MVC

celé vlákno
Nette je psane v PHP pro webove pouziti. Nacteni novych informaci bude iniciovano uzivatelskou akci v prohlizeci, o nejakem sledovani pohledu ze strany modelu nemuze byt asi rec.

Ve vseobecne rovine muze jit o problem implementace MVC, ktera, jak David naznacil, stale neni idealni. Kazdemu vyhovuje jiny styl a take proto vznika spousta MVC frameworku. Ustalena pravidla v ramci architektury mohou byt pro vyvoj aplikace omezujici a tak se casto hledaji klicky a vyjimky pro implementaci specifickych funkci. Robustni MVC systemy se sirokou skalou funkci mohou byt slozite na nauceni, jednoduche MVC systemy zase predpokladaji vetsi zasahy do kodu aplikace ze strany programatora, a tim padem i hlubsi pochopeni kodu a logiky MVC.
Karell
Karell (neregistrovaný) ---.eurotel.cz
24. 3. 2009 11:37 Nový

Re: Problem MVC

celé vlákno
Mozna se ptate na metody zacinajici na fire... Napr u AbstractTableModel je napr fireTableDataChanged(), ktera notifikuje vsechny pohledy na tento model, ze se data v tabulce zmenila a maji se prekreslit.
Takze modelu predate nova data a pak zavolate fireNeco podle toho, jaky rozsah chcete obcerstvit (pokud neresite vykon, tak vzdycky vsechno :-) ) a o vic se nemusite starat. V idealnim pripade si aplikace vubec nemusi drzet odkaz na zobrazovaci tridu pote, co ji preda model, vsechno se to obstara vnitrne ve swingu.
ava
ava (neregistrovaný) ---.e-fractal.cz
24. 3. 2009 10:18 Nový

Rozdeleni modelu a prezenteru

celé vlákno
Zajimave, ale nejsou mi jasne dve veci.

Prvni vyplyva z me neznalosti NETTE frameworku. Jak je uchovavana hodnota instancni promenne $money mezi jednotlivymi kliky? Je zakodovana do URL? Jakym zpusobem je mozne ovlivnit, ktere promenne se maji uchovat a ktere ne? Jak je to s uchovavanim slozitejsich datovych struktur? (pole, slovniky, jine objekty)?

Druha otazka se tyka volby rozdeleni zodpovednosti automatu na kavu mezi model a presenter. Ocekaval bych, ze presenter ma na starosti pouze interakci mezi modelem (tj. fyzickym strojem na kafe) a uzivatelem, tj. v pripade analogie s fyzickym automatem ma prezenter roli predniho panelu s navodem k pouziti, tlacitky, mincovnikem a vydejovym okenkem, ale _nemel_ by jiz resit vnitrnosti stroje, tj. rozhodovaci logiku zda uzivateli vydat ci nevydat kafe podle toho kolik do nej bylo nahazeno penez atd, vareni kafe, uchovavani informaci o tom kolik penez je v mincovniku atd.. V objektovem modelu by podle me mel mit prezenter pouze jedinou instancni promennou, $model, ktere by posilal zpravy jako coinInserted, coffeTypeSelected, getCoffeeMakingProgress, ale veskera obsluzna logika by jiz mela byt v modelu. Pokud zacnete cpat business logiku z modelu do presenteru, veskere vyhody MVC se vytraceji.
Koukam ze to nebyla ani tak otazka, jako spis konstruktivni kritika :)


Jinak framework pusobi vcelku rozumne, dalsi maly krucek k zjednoduseni tvorby webaplikaci..
uživatel si přál zůstat v anonymitě ---.klfree.cz
24. 3. 2009 10:58 Nový

Re: Rozdeleni modelu a prezenteru

celé vlákno
Ano, $money je přenášena v url. Ovlivňuje se to pomocí té anotace @persistent. Složitější objekty bych uchovával v session.
David Grudl aura:74
24. 3. 2009 13:48 Nový

Re: Rozdeleni modelu a prezenteru

celé vlákno
> tj. v pripade analogie s fyzickym automatem ma prezenter roli predniho panelu s navodem k pouziti, tlacitky, mincovnikem a vydejovym okenkem, ale _nemel_ by jiz resit vnitrnosti stroje, tj. rozhodovaci logiku zda uzivateli vydat ci nevydat kafe podle toho kolik do nej bylo nahazeno penez atd, vareni kafe, uchovavani informaci o tom kolik penez je v mincovniku atd.


Ano, rozdělení odpovědnosti je velmi důležitým bodem návrhu MVC aplikace. Tedy zodpovědět otázku, co je "prezentační logika" a co "byznys logika". V uvedeném příkladu ve své jednoduchosti lze rozhodnout tak i tak, obojí bude správně a mně se toto rozdělení lépe hodilo do příkladu.

Jako zásobník na mince, který uchovává informaci, kolik mincí v něm je, si lze totiž analogicky představit třeba "zásobník na písmenka s uchováváním informace", neboli [input type="text"]. U něj by asi nikdo neváhal, že patří do prezentační logiky.
ava
ava (neregistrovaný) ---.e-fractal.cz
24. 3. 2009 15:48 Nový

Re: Rozdeleni modelu a prezenteru

celé vlákno

Jako zásobník na mince, který uchovává informaci, kolik mincí v něm je, si lze totiž analogicky představit třeba "zásobník na písmenka s uchováváním informace", neboli [input type="text"]. U něj by asi nikdo neváhal, že patří do prezentační logiky.

Nevidim zadnou analogii mezi zasobnikem na mince a retezcem("zásobníkem na písmenka s uchováváním informace"), krome toho ze oboje bude zrejme reprezentovano jako kolekce objektu.

Nevim proc bych nemel vahat jestli patri retezec umistit do prezentace nebo byznys logiky, to mi prijde jako dost dulezite a netrivialni rozhodnuti zavisle na tom co modeluji. Jinak samozrejme _vzdy_ lze dat logiku do modelu nebo do prezentace, ale v zavislosti na konkretnim pripade ma jedno nebo druhe lepsi smysl, usnadnuje nebo ztezuje porozumneni a navrh aplikace. Se zbytkem souhlasim.

Almad
Almad (neregistrovaný) ---.net.upc.cz
24. 3. 2009 11:23 Nový

Volání funkce revoluční jako znovuobjevené?

celé vlákno
Nechci shazovat hlavní myšlenky autora, ale dispatcher na funkci (odkaz coby zavolání funkce) mělo už cherrypy 2 (http://cherrypy.org/) se kterým jsem pracoval už pár let nazpět.

A vsadil bych se, že určitě nebylo první, kdo s timhle konceptem přišel.
michal_
michal_ (neregistrovaný) 88.86.104.---
24. 3. 2009 12:17 Nový

revolucni myslenka?

celé vlákno
citace: na jehož počátku byla (dnes si troufám říci) revoluční myšlenka: nechť je odkaz totéž, co zavolání funkce.

Tohle ale mely Ruby on Rails ohodne driv.
petr
petr (neregistrovaný) 62.77.88.---
24. 3. 2009 13:02 Nový

Re: revolucni myslenka?

celé vlákno
>>Tohle ale mely Ruby on Rails ohodne driv.
A co jako? Pan Grudl snad psal ze to ma Nette prvni?? Nechapem
David Grudl aura:74
24. 3. 2009 13:11 Nový

Re: revolucni myslenka?

celé vlákno
Rozhodně nechci hájit nějaké prvenství, toho jsem dalek. Jen mi v roce 2004 žádný podobný koncept nebyl znám (Rails v té době neexistovali, u výše zmíněného Cherrypy se mi z dokumentace nedaří zjistit, zda umí ovlivnit tvar URL, ale možná jen špatně hledám). Vím, že dnes existuje řada více či méně podobných řešení (např. ASP.NET MVC), dost možná existovaly i před Nette, ale v roce 2004 se prostě o podobných věcech nepsalo a nevědělo, proto to slovo "revoluční".
uživatel si přál zůstat v anonymitě ---.zla.cz
24. 3. 2009 21:01 Nový

Re: revolucni myslenka?

celé vlákno
Mojavi (2003) - vychazi z neho Agavi a na Agavi zaklada routing Symfony...
uživatel si přál zůstat v anonymitě 77.240.188.---
24. 3. 2009 21:55 Nový

Re: revolucni myslenka?

celé vlákno
To se vubec neda s Nette srovnat. Staci se podivat jak se v Mojavi verze 2 (rok 2004) otrocky sklada URL http://www.peterrobins.co.uk/it/mojavitutorial2.html#mozTocId492691. Princip, ktery ma Nette, zacalo mit az Symfony, PRADO od verze 3.1.1 (rijen 2007) a ASP.NET MVC (listopad 2007).
Balls McLongcock
Balls McLongcock (neregistrovaný) ---.zla.cz
25. 3. 2009 2:47 Nový

Re: revolucni myslenka?

celé vlákno
A ted mi prosimte rekni jak to delalo Nette v roce 2004 kdyz se to neda srovnavat? :)))
TanisCZ
TanisCZ (neregistrovaný) ---.net.upc.cz
24. 3. 2009 21:55 Nový

Re: revolucni myslenka?

celé vlákno
s ASP.NET MVC jsem se nedávno dostal do styku a když jsem v něm zkoušel cvičně programovat pár miniaplikací, nemohl jsem se ubránit dojmu, že buď mohutně opisoval Nette od Asp.NET MVC a nebo naopak. Obojí je samozřejmě blbost :)

Docela by mě zajímalo, jestli je schopný se asp.net mvc v budoucnu prosadit.
Jinak Nette je skvělý kus kodu, ktery clovek neprivadi do depresi, kdyz uz musi programovat v php. Gratulace :)
v6ak aura:72
24. 3. 2009 14:38 Nový

Textové popisky v controlleru?

celé vlákno
Myslím, že controleru můžou být textové popisky ukradené a že by je měl řešit view. Na čí straně je nepochopení? Nebo jsou možné oba přístupy?
Jakub Vrána aura:44
24. 3. 2009 14:53 Nový

Význam URL

celé vlákno

URL by mělo vyjadřovat stav aplikace a nikoliv postup, jak jsme do tohoto stavu dospěli. Stav kávomatu je vyjádřen hodnotou proměnné $money, takže URL ?money=5 by bylo v pořádku. Naproti tomu ?coin=5&do=insert vyjadřuje postup. Podle mého názoru by akce provedená na tomto URL měla přesměrovat právě na ?money=5. A to navíc odhlížím od toho, že akce mění stav aplikace, takže by měla být odesílaná metodou POST. Pokud by se hodnota $money ukládala třeba v session proměnné, tak by reload stránky vedl k nepřípustné změně tohoto stavu.

David Grudl aura:74
24. 3. 2009 14:57 Nový

Re: Význam URL

celé vlákno
Ty mi tady vyzrazuješ obsah příštího dílu! :-)
ava
ava (neregistrovaný) ---.e-fractal.cz
24. 3. 2009 15:41 Nový

Re: Význam URL

celé vlákno
No v tomhle pripade si tedy nejsem moc jisty. Jednak nevim, proc by URL melo vyjadrovat stav a ne akci, do URL si snad muzu zakodovat co chci podle toho jak se mi to hodi.. Nevim jestli je to nejaky doporuceny postup, ale v tomhle pripade znemoznuje prihazovani vice lidi do automatu (jdu si dat romanticke kafe do automatu v delvite se svym devcetem, ja mam jen petikorunu a ona taky, kafe stoji 10 tak se dohodneme ze tam kazdy hodime vsechno a pak to jeden z nas vybere a kafe vypijeme dohromady).

- Oba si nacteme stranku kde je pro klik na petikorunu vyjadren jako ?money=5
- Ona prihodi petikorunu, vygeneruje se ji stranka s klikem na petikorunu vyjadrenym jako ?money=10, bohuzel uz petikorunu nema tak ceka na me
- Ja prihodim petikorunu, ale tim jen nastavim cilovou castku zase na 5 korun, prijdu i o sveho bura a kafe si nedame protoze automat si mysli (resp. skutecne ma) pouze 5 korun, petikoruna meho devcete jakoby nebyla (ale je klidne mozne ze se ji odecetla z kapsy! pokud neni implementovan nejaky komplikovany kontrolni mechanismus kdy se ptam automatu jestli se nekam neztratily me penize..)

To asi neni stastne reseni, lepsi by v tomto pripade bylo kdyby do URL byla zakodovana akce a stav byl ulozen jinde (na serveru).
Jakub Vrána aura:44
24. 3. 2009 15:50 Nový

Re: Význam URL

celé vlákno

Možná jsem se nevyjádřil srozumitelně. URL na provedení akce by samozřejmě mělo vést na ?coin=5&do=insert (lépe navíc metodou POST). Toto URL by ale nemělo v prohlížeči zůstat a mělo by uživatele přesměrovat na ?money=5 (pokud držíme stav v URL proměnné a ne třeba v session).

Ale počkejme skutečně na další díl - jak mi David objasnil, tak přesně tímhle by se tam měl zabývat.

ava
ava (neregistrovaný) ---.planeta.cz
24. 3. 2009 16:52 Nový

Re: Význam URL

celé vlákno
Ach tak, to jsem skutecne pochopil jinak, takto to jiz dava dobry smysl. Omlouvam se potom za offtopic prispevek (a sobe si nadavam do gorilich klitorisu ze jsem jim ztratil tolik casu misto abych zkusil vic premyslet :-)
Aleš Roubíček
Aleš Roubíček (neregistrovaný) 193.165.135.---
25. 3. 2009 10:11 Nový

Re: Význam URL

celé vlákno
Říká se tomu REST.
pubso
pubso (neregistrovaný) ---.skyeurope.ba.cust.gts.sk
24. 3. 2009 15:53 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Ja bych mnel dotaz stran te kvalitni brazilske kavy!
MacHala
MacHala (neregistrovaný) ---.42.broadband2.iol.cz
24. 3. 2009 20:36 Nový

Trygve Reenskaug

celé vlákno
"Když Trygve Reenskaug v roce 1979 popsal architekturu Model–View–Controller (MVC), zapsal se do dějin programování a jeho jméno by měl znát každý vývojář na celém světě."

doufam, ze ho nemusi umet i vyslovit ;)
Balls McLongcock
Balls McLongcock (neregistrovaný) ---.zla.cz
24. 3. 2009 21:19 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Ja teda v "presenteru" nevidim jediny rozdil oproti controleru. Jaky je duvod pro tohle oznaceni oproti standardnimu nazvoslovi?
Borek Bernard aura:66
24. 3. 2009 23:18 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
> Ja teda v "presenteru" nevidim jediny rozdil oproti controleru

V Nette má view úzkou vazbu na presenter. Podle mého názoru je zvolené názvosloví správné.
Balls McLongcock
Balls McLongcock (neregistrovaný) ---.zla.cz
25. 3. 2009 2:59 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Ano a taky má úzkou vazbu na model. Opravdu kvalitní odpověď.
Aleš Roubíček
Aleš Roubíček (neregistrovaný) 193.165.135.---
25. 3. 2009 10:14 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Lehký nástin rozdílů mezi MVC a MVP jsem udělal tady: http://rarous.net/weblog/236-mvc-unit-testy.aspx
Borek Bernard aura:66
25. 3. 2009 10:43 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Zkusím to ještě jednou a trochu obšírněji:

> Ja teda v "presenteru" nevidim jediny rozdil oproti controleru

V Nette má view úzkou vazbu na presenter, čímž se liší od controlleru ve webovém MVC modelu, kde view většinou o controlleru vůbec neví. Alešův odkaz rozdíl pěkně demonstruje.
none_
none_ (neregistrovaný) 77.240.97.---
24. 3. 2009 23:43 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Nejsem si jisty jestli si to pamatuju dobre, ale mam za to, ze na strankach autora bylo nekde napsano ze MVC = MVP (controller = presenter). Je to jenom jiny nazev...
Milan Čermák
Milan Čermák (neregistrovaný) ---.sun.com
25. 3. 2009 9:13 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Rozdíl zde je, alespon v chápání Controlleru podle původního návrhu. Tam bylo úkolem Controlleru přebírat události systému (stisky kláves, pohyb a klikání myší) a na jejich základě spouštět akce definované Modelem. U webových aplikací tento úkol prakticky provádí sám browser (občas za přispění javascriptu) a komunikuje s modelem pomocí URL.
Pokud použijeme tuto definici Controlleru, pak je Presenter de facto Modelem.
Aleš Roubíček
Aleš Roubíček (neregistrovaný) 193.165.135.---
25. 3. 2009 10:17 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Zajímavá implikace. Bohužel nepravdivá.
Milan Čermák
Milan Čermák (neregistrovaný) ---.sun.com
25. 3. 2009 10:23 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Můžete být konkrétnější v čem je nepravdivá?
Borek Bernard aura:66
25. 3. 2009 10:39 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Dobře jste poukázal na podobnost mezi původním chápáním MVC a dnešními webovými MVC frameworky, protože ta analogie je tam opravdu velká. Nesprávně ovšem píšete, že u webových aplikací je controllerem de facto prohlížeč: webová aplikace je serverová záležitost a o nějakém prohlížeči nemá ani tušení. "Systémové události" jsou u webové aplikace v podstatě jen jednoho typu: vyvolání skriptu přes HTTP požadavek, takže controller je ve webovém MVC modelu ten kód, který tyto požadavky zpracovává.
Balls McLongcock
Balls McLongcock (neregistrovaný) ---.zla.cz
25. 3. 2009 13:23 Nový

RE: Nette Framework: MVC & MVP

celé vlákno
Takže pokud správně chápu mohl by být rozdíl v tom, že validace a zpracování requestu je prováděno v modelu?
komorniA
komorniA (neregistrovaný) ---.171.broadband11.iol.cz
29. 3. 2009 0:05 Nový

trygve

celé vlákno
Mě zaujala ta vtipná hláška z perexu o jménu Trygve. Skvělý začátek prezentace.
Jméno Trygve má 6086 Norů, přičemž v celém Norsku jsou méně než tři lidi se jménem Trygve Reenskaug. Příjmení Reenskaug má 34 lidí.
Na druhé straně, i když je jméno David na žebříčku popularity na 6-7. místě (tedy hodně vysoko), tak příjmení Grudl je v Čechách zastoupeno ve 4 případech (včetně cizinců, zemřelých, nezvěstných :). Tedy méně než Reenskaugů. Ale dá se to prezentovat i tak, že jsi výjimečnější než Reenskaug :)
Každopádně ti držím palce, prezentuj, vysvětluj, zjednodušuj, přibližuj, konkretizuj.
Ksl
Ksl (neregistrovaný) ---.62.broadband3.iol.cz
7. 5. 2009 0:27 Nový

Re: trygve

celé vlákno
A ta poznámka o elektronce, děrovačce a dřevěné pramyši taky míří tak trochu vedle, jelikož pán pracoval v PARCu, a věřím, že pro zdejší čtenáře k tomu není třeba nic dodávat. :-)
Encode
Encode (neregistrovaný) ---.starnet.cz
19. 5. 2011 15:46 Nový

Kde se vzala struktura?

celé vlákno

Dobrý den. Je možné že jsem si toho nevšiml, ale kde je řečeno cokoliv o struktuře, bootstrapu a jiných věcech ze staženého automatu?
Ne, že bych tímto šel proti autorovi, ale rád by jsem pochopil proč volit tuto strukturu a proč máme bootstrap když to "můžu" všechno napcat do jednoho souboru

Lucka
Lucka (neregistrovaný) 81.91.220.---
7. 6. 2011 13:30 Nový

htmlSpecialChars?

celé vlákno

Co je to htmlSpecialChar­s($display)? Proč to tam je, co to zobrazí a kde je to definované? Díky

Sopta
Sopta (neregistrovaný) 80.90.129.---
1. 7. 2011 2:24 Nový

Re: htmlSpecialChars?

celé vlákno

http://jonatan.spse.pilsedu.cz/doc/php-man/function.htmlspecialchars.html

- slouží pro ošetření výstupu

Pokud jsem to dobře pochopil, s Nette teprve začínám ale myslím si:

$this->template->display = 'Vhoď ' . Model::COFFEE_PRICE . ' Kč';

Ti vytvoří pro šablonu právě tu proměnnou $display:

<?php echo htmlSpecialChars($display) ?>

Můžeš si zkusit přidat do metody buy() pod řádek

$this->template->display = 'Dobrou chuť';
$this->template->odstavec = 'Nový odstavec';

a pak do šablony přidat třeba:

<?php echo htmlSpecialChars($odstavec) ?>

Doufám, že to je správně :) nemám to odzkoušení je pul třetí a už se mi nechce otevírat PsPad :D

Zasílat nově přidané příspěvky e-mailem