Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Václav
Člen
Avatar
Václav:14.11.2015 13:21

Zdravím :)

Rád bych se Vás zeptal ohledně MVC architektury.

Jde o zvolení konkrétní třídy controlleru dle url adresy. Většinou vídám následující postup. Vezme se ona část url a předělá se (velbloudí notace, ...) do požadovaného tvaru který odpovídá názvu třídy controlleru a ten se použije pokud soubor existuje.

Dejme tomu, že url mám v českém jazyce a třídy v anglickém, popřípadě se jmenují úplně jinak. Možným řešením by bylo pomocí pole k url přiřadit controller.

Ovšem ke každé stránce bych rád přiřadil například title, description, či např. potřebné uživatelské právo k přístupu. To lze samozřejmě udělat přímo v daném controlleru.

Má otázka zní zda by bylo korektní vytvořit v databázi tabulky se stránkami, kde budou uvedeny všechny dostupné stránky webu včetně url, jejich controlleru a výše uvedených ostatních parametrů. Následně by se podle url tyto data vybíraly.

Děkuji

 
Odpovědět 14.11.2015 13:21
Avatar
Odpovídá na Václav
Martin Konečný (pavelco1998):14.11.2015 14:07

zdravim,

udělat to samozřejmě jde, mám takový pocit, že nějak takto funguje i web z místního MVC tutoriálu. Nejspíš pak v tabulce budeš mít sloupec s ID jazyka.
Trochu ale pochybuji o použitelnosti mít stránky v databázi. Když budeš potřebovat mít na stránce nějaký formulář nebo jiné dynamické prvky, kam je nacpeš a jak je se stránkou spojíš?

Nahoru Odpovědět 14.11.2015 14:07
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Václav Černý:14.11.2015 14:17

Jde pouze o uložení url stránky a přiřadit jí hlavně daný controller a uživatelské právo. Vše ostatní samozřejmě zůstává principově klasicky MVC. Nevím jestli jsme se pochopili. Jde mi asi hlavně o to, zda je lepší si url s daným controllerem, právem, popřípadě title a description poukládat do databáze, nebo controllery přiřazovat pomocí pole jednotlivým url a ostatní ponechat v daném controlleru. Jak se tento problém případně řeší jinak a co se v praxi používá.

Nahoru Odpovědět 14.11.2015 14:17
Nezávislý český vývojářský tým - www.luvastudio.cz
Avatar
Odpovídá na Václav Černý
Martin Konečný (pavelco1998):14.11.2015 15:00

Já používám Nette framework, tam se to neřeší přes databázi a nikdy mi to problém nedělalo. Nevím, jak přesně tam to routování funguje, ale překlad si, myslím, děláš pomocí pole.

Nahoru Odpovědět 14.11.2015 15:00
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Milan Gallas
Redaktor
Avatar
Odpovídá na Václav
Milan Gallas:14.11.2015 16:50

Pokud se Controllery jmenují jinak než parametr v url, tak si udělej router, který ti to přeparsuje. Když to napíšu velmi zjednodušeně, tak můžeš mít něco jako:

["prihlaseni" => "login", "profil-uzivatele" => "profile", "administrace" => "administration"];

pak když napíšeš do url www.domena.cz/administrace -> zavolá se Administration­Controller.
To je nejjednodušší příklad, co mě momentálně napadl.

 
Nahoru Odpovědět 14.11.2015 16:50
Avatar
Odpovídá na Milan Gallas
Václav Černý:15.11.2015 11:34

Děkuji, přesně takto jsem to myslel a i takto to dělám, jen mnohem složitěji, kde zohledňuji další potřebné věci. Každopádně jsem chtěl jen vědět, zda se to v praxi opravdu používá takto, nebyl jsem si jistý, protože různých řešení by se dala vymyslet celá řada. Pokud by někdo řešil stejný problém, určitě je dobré se podívat jak routování řeší různé frameworky.

Nahoru Odpovědět 15.11.2015 11:34
Nezávislý český vývojářský tým - www.luvastudio.cz
Avatar
Nahoru Odpovědět 15.11.2015 11:44
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
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 7 zpráv z 7.