Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:24.9.2013 11:35

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:24.9.2013 11:38

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

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

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):24.9.2013 15:25

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:24.9.2013 17:08

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
Odpovídá na David Čápka
Ondrca:24.9.2013 17:11

Díky za odpověď.

Nahoru Odpovědět 24.9.2013 17:11
Zase jsem o něco chytřejší
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:27.9.2013 22:44

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:28.9.2013 17:05
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:28.9.2013 17:49

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:28.9.2013 18:03

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ý:28.9.2013 22:19

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:28.9.2013 22:35

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
Daniel Vítek:29.9.2013 17:45

Tak jo, taky se hlásím :)
http://projekty.danvitek.cz/…-kalkulacka/

 
Nahoru Odpovědět 29.9.2013 17:45
Avatar
Odpovídá na David Čápka
Michael Olšavský:29.9.2013 21:00

Hodnotí se už?

 
Nahoru Odpovědět 29.9.2013 21:00
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:29.9.2013 21:20

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:30.9.2013 11:21

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í.
Avatar
 
Nahoru Odpovědět  +1 30.9.2013 12:43
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.