Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj, určitě tu hodně z vás v PHPčku stále bastlí bez architektury a právě proto v pravidelné minisoutěži o placku na tento týden vytvoříme jednoduchou kalkulačku v PHP. Bude stačit, když sečte 2 čísla, které uživatel zadá do inputů a vypíše výsledek.

Tuto jednoduchou aplikaci však napište tak, abyste použili MVC (nebo MVP) architekturu a oddělili logiku od výstupu. Nesmíte použít hotový framework, alespoň uvidíte, že udělat si vlastní MVC je opravdu záležitost pár řádků kódu. Hodnotí se objektový návrh, co aplikace umí je už docela jedno. Možností máte spoustu, můžete se inspirovat mým řešením - http://www.itnetwork.cz/php/mvc, kde je i detailně popsáno jak MVC architektura funguje. Hezké URL adresy a další věci samozřejmě nemusíte řešit. Můžete samozřejmě vymyslet vlastní řešení, jen musí oddělovat logiku a výstup.

Všichni teď máte příležitost naučit se psát kvalitní webové aplikace, tak ji využijte :P Autor nejlepšího řešení si může vybrat mezi plackou Machr na PHP nebo Machr na OOP.

Deadline jako vždy v neděli 29.9. v 18:00.

Editováno 24.9.2013 11:37
Odpovědět  +1 24.9.2013 11:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Inoue Yūki
Redaktor
Avatar
Inoue Yūki:

Výborně. Že bych konečně zkusil machra? :D

Nahoru Odpovědět  +3 24.9.2013 11:38
Avatar
hh
Člen
Avatar
hh:

Pokud jsem se o PHP doposud nezajímal, je možné tu aplikaci vytvořit, jestliže si jen přečtu těch jedenáct návodů tu a pochopím to? Nebo musím mít nějakou znalost PHP k tomu? :` (Neukamenujte mě, chtěl bych si to prostě jen zkusit :) )

Editováno 24.9.2013 15:19
Nahoru Odpovědět 24.9.2013 15:16
Dostane se ti toho, čeho se zasloužíš...
Avatar
Odpovídá na hh
Michal Žůrek (misaz):

přečti si základy, pak by ti to možná mohlo jít, ale doporučuji ještě oop.

Nahoru Odpovědět  +2 24.9.2013 15:25
Nesnáším {}, proto se jim vyhýbám.
Avatar
Ondrca
Redaktor
Avatar
Ondrca:

Musí být v PHP?

Nahoru Odpovědět  -1 24.9.2013 17:08
Zase jsem o něco chytřejší
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 24.9.2013 17:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Ondrca
Redaktor
Avatar
Nahoru Odpovědět 24.9.2013 17:11
Zase jsem o něco chytřejší
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:

Výborně, hned zítra se do toho pustím. Kam mám soubory uložit?

Nahoru Odpovědět 27.9.2013 22:44
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:
http://sdrv.ms/16z6hJN

Tak mám hotovo, stačí to takhle?

Editováno 28.9.2013 17:06
Nahoru Odpovědět 28.9.2013 17:05
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na patrik.valkovic
David Čápka:

Určitě, mohlo to být i kratší :)

Nahoru Odpovědět 28.9.2013 17:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na patrik.valkovic
Kit:

Bacha na ten BOM, který máš na začátku každého souboru. Může ti udělat pár nepříjemností, pokud budeš chtít poslat nějaké HTTP hlavičky, např. cookie.

Nahoru Odpovědět  +1 28.9.2013 18:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Sice jsem si říkal, že si tenhle týden od machrů dám pauzu, ale nakonec jsem to nedodržel :-) Mám tedy dotaz. Jelikož se nemusíme starat o URL a neřeším tu ani žádné různé druhy kontrolerů (mám pouze jeden), můžu se vykašlat na Router? Nebo je to součást architektury?

 
Nahoru Odpovědět 28.9.2013 22:19
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:

Router není součástí architektury MVC, dá se to udělat i bez něho.

Nahoru Odpovědět 28.9.2013 22:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Moc se omlouvám, dnes jsem se k tomu nedostal, řešil jsem něco ohledně ML. Vyhlásím výsledky výjimečně zítra dopoledne.

Nahoru Odpovědět 29.9.2013 21:20
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Tak jsem to prošel:

  1. brisingr002 (100 bodů) - Velmi pěkné, ani jsem nevěděl, že má PHP anonymní funkce. Jen nemusíš pole POST pro zkopírování procházet, v PHP není pole referenční. Chválím výjimky.
  2. patrik.valkovic (90 bodů) - Nějak jsem nepochopil funkci zobraz() v konkrétním kontroleru, ta se přeci dědí. Chválím volání metody z URL. Škoda, že validace nevyhazuje výjimky.
  3. DanVitek (70 bodů) - Skoro v cíli :) Zkus si jednotlivé komponenty rozdělit do složek a napsat k tomu autoloader. Třída by se měla jmenovat stejně jako soubor a hlavně podle toho, co dělá. Pocitej je název pro metodu, třída by se jmenovala třeba Pocitac.

Placku se slonem získává Michael Olšavský. Gratuluji a ostatním děkuji za účast :)

Editováno 30.9.2013 11:22
Nahoru Odpovědět 30.9.2013 11:21
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.