Diskuze: MVC Tutorial
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Teď jsem tě moc nepochopil. Říkáš, že se ti to nedaří nasměrovávat na index?
Spíše jsem to tak nazval, že index je vždy to první co se načte. Spíše když načtu http://domena.cz tak aby zůstala ve stejné podobě a nesměrovala se již rovnou na např. http://domena.cz/rozlozeni
Jde jen o ten vzhled URL 
Aha. To je vcelku jednoduchý. Místo kontroleru pro http://domena.cz/ si prostě zavoláš kontroler pro http://domena.cz/rozlozeni. Já to řeším tak, že mám v konfiguračním souboru něco takového:
{
"": "Homepage:default",
"sign/in": "Sign:in",
...
}
Kdy první parametr je URL a druhý je určitá cesta ve tvaru
presenter(kontroler):pohled. 
Bohužel nerozumím co tím chceš říci 
Právě že netuším kam hodit ten default. Celé to funguje, že to musí mít název a podle názvu se to automaticky spojí. V kontroleru to již neudělám tam je pozdě, nebo nevím aspoň jak a musel bych ještě před kontrolerem ale to bych zas nerad udělal něco mimo MVC.
Zkus si to MVC napsat sám, určitě ti to pomůže. V té nejjednodušší úrovni by to mohlo vypadat nějak takto:
JSON:
{
"": "Homepage:default"
}
PHP
$url = ; //Současná URL, z proměnné $_SERVER atp.
$cesty = json_decode("cesta-k-json.json");
foreach( $cesty as $key => $value ) {
$info = explode(":", $value);
if( $key == $url )
$presenter = $key;
}
$presenter = new $key;
A vytvořil sis instanci třídy Homepage. To by byl základ. Na tom už
můžeš stavět. 
Kód jsem psal narychlo a nezkoušel jsem ho, takže v něm určitě bude chyba. Je to jen na ukázku principu.
Možná na to dneska už koukám velkýma očima. Zítra to vezmu od
začátku a zkusím se i lépe podívat na tvůj příklad. Po přepisování
celého MVC na svůj web mi dalo už docela zabrat. Zkusím se znovu podívat na
logiku a lépe pochopit to routování.
Každopádně jakmile mi odpověď bude stačit, tak určitě body za vyřešeno
dostaneš 
Kdybys něco potřeboval, klidně mi písni do soukromých. 
Tak jsem se rozhodl, že zatím na MVC ve 100% podobě zatím nemám, jsem
rád když veškerému procesu rozumím a vím proč kam co dát atp. Je pravda
že neprogramuji tak dlouho v kvalitnější podobě, co se týče rozumění
kodu.
Ale krásně mi to vysvětlilo jak je možné provádět nové procesy, které
jsem vyžadoval a věděl že něco podobného v rozsáhlejším projektu bude
potřeba.
Každopádně strukturu jsem si ponechal -> kontroler, model, pohledy...
index.php ->
http://pastebin.com/6Ptz21zi
kontrolery/Kontroler.php
Mám zatím bez využití, ale nahážu tam očištění htmlspecialchars,
vyskakování chyb atp, ale je abstraktní.
kontrolery/SmerovacKontroler.php ->
http://pastebin.com/UaL6y90z
(Menu ze stránky se bude načítat tak jak je, ostatní údaje již z MySQL pomocí PDO samozřejmě a automaticky podle uzivatele a toho co se má zobrazit)
Pak už to jen ve SmerovacKontroler spojím:
case 'prihlasit':
require_once("./pohledy/prihlaseni.phtml");
$FormKontroler->formPrihlaseni();
break;
Což si myslím, že pro začátečníka to není úplně nejhorší. v OOP
píšu, nebo v pravém slova smyslu se snažím a PDO taky využívám. Všechno
má svůj čas 
Z důvodu kompletního předělávání nemám zmíňku o modelech, ale tam
bude zpracování formuláře -> např. INSERT do DB, nebo SELECT atp..
Včetně jiných procesů, které
nepotřebují již další kontrolu.
Tak jsem dneska asi vstal dobrou nohou... Celé routování jsem si předělal kompletně na GET se zachováním přesné struktury čtení dat.. Pomocí GET si zjistím název a zbytek je úplně stejný. Již načtu kontroler, ten díky URL pozná který kontrolér má načíst a ten spojí vše co je třeba..
Zobrazeno 13 zpráv z 13.