Diskuze: MVC - zvolení controlleru

PHP PHP MVC - zvolení controlleru American English version English version

Avatar
Václav
Člen
Avatar
Václav:

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):

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
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Václav Černý:

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):

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
Avatar
Milan Gallas
Redaktor
Avatar
Odpovídá na Václav
Milan Gallas:

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ý:

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
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.