Tags:
php
framework
mvc
Heej Udviklerer.
Jeg er begyndt på et nyt projekt som jeg har gået oig tænkt over i nogen tid,
og jeg er stødt ind i et mindre problem.Min MVC virker på den måde at første argument i url'en bestemmer controlleren, og andet argument bestemmer method. Mit problem ligger så i at det hele er hardcodet, det vil sige at jeg ikke har muglighed for at tilføje nye sider igennem et CMS system med mindre jeg laver et "script" som til tilføje den extra kode ind i min class.php fil.
Da jeg tænker at det ikke kan passe at det skal være så besværligt, ville jeg lige høre jer her inde om i havde nogen bud til optimering/løsning.
Tak på forhånd!
Mvh. Wunderstrudel.
8 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
0
Heej Dan! (:
Kan du give mig et hurtigt eksemple/forklaring på hvordan du ville skrive det? Har siddet og læst lidt op på page controllers, og de virker lidt til at gøre det samme som mine normale controllers i min mvc?
0
ja. Det er en normal controller ... men til at hente cms pages
0
Men kan det passe at lige meget hvad så skal jeg have et script som tilføjer extra kode / extra functioner til min class? (:
0
jeg er ikke helt med .. du arbejder i codeigniter gør du ikke ?
0
Nej jeg har skrevet min egen MCV, den minder lidt om cakePHP i hvert fald i selve brugen af den. (:
0
Hej
Det jeg gjorde dengang hvor jeg selv prøvede at bygge mit eget MVC system var at jeg gjorde det muligt at definere nogle routing regler, ligesom man har routes.php i Laravel og CodeIgniter.
Her havde jeg et hiraki som godt nok bedstod af en voldsom mængde if else if statements og så var den allersidste route en wildcard route der sente hele URL'en som parameter til en metode på en controller. Denne controller hed i mit tilfælde PageController og metoden heder showPageFromSlug og tog i mod en string som parameter. Denne metode havde til formål at oversætte min URL til f.eks. page/123, hvor 123 er mit page id og dette kunne jeg så smide til en metode der hedder showPage og returnerer så et view til den kaldende metode.
showPageFromSlug havde i sine sidste dage også mulighed for at internt at videregive den oversatte URL til en anden controller, så havde jeg f.eks. en URL der hedder www.example.com/shortcut-to-admin, så ville denne måske oversætte til www.example.com/admin/login
Herefter kunne den automatisk returnerer den oversatte streng til min routing som herefter, uden at brugeren skifter URL, finder den korrekte controller og metode og til sidst returnerer det forespurgte view eller anden handling der udføres at metoden på den pågældende route.
Mine slugs eller brugervenlige URL'er var gemt i en databasetabel sammen med den oversatte controller/method/parameter kombination.
Der er sikkert en langt nemmere og bedre måde at gøre det på end det jeg har gjort, men det virkede.
Håber du kan bruge det til noget.
0
Det er jo svært at hjælpe når man ikke rigtigt kender dit MVC framework. Men jeg ville som sagt lave en page controller der kan hive den givne CMS side ud alt efter hvilket id der er angivet.