login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP objects voor CMS

Offline MiST - 04/03/2008 12:38
Avatar van MiSTLid Goeiedag!

Ik ben reeds een tijdje bezig een eigen CMS te ontwikkelen, ik heb reeds enkele ideeen, maar elke keer ik verderwerk, ben ik niet meer tevreden met wat ik al had. Dat is vrij lastig en ik weet ook wel waaro het zo is. In het begin was ik gewoon begonnen met een opeenstapeling van functies. Nu zien we aan de universiteit OOP in Java, en ik probeer wat de concepten van OOP in PHP te gebruiken.

Ook omdat dit (denk ik) meer mogelijkheden tot uitbreiding geeft.

Maar ik heb een probleem. Dat hele klassegedoe lukt me nog wel voor eenvoudige projecten, maar een CMS zoals ik het mij inbeeld, is al heel wat complexer. Ik vraag me dan ook af hoe ik dit technisch moet realiseren.

Ik zal hier eerst een beschrijving geven van de functionaliteit en dan zeggen in welke richting ik dacht voor mijn klassen. Ik had graag eens geweten wat professionele programmeurs hun visie op mijn tactiek is...

Mijn CMS moet hebben:
[list]
[*]BackEnd, Admin (logisch)
[*]Componenten, zoals Joomla. Het hele opzet is eigenlijk Joomla een beetje na te maken. Op deze manier weet ik waar ik dingen kan aanpassen als ik een modificatie in het script wil of een specifiek onderdeel wil maken.
[*]Templates
[*]Interface talen
[*]... (voor uitbreiding vatbaar)
[/list]

Mijn idee was dus een hoofdobject CMS te maken die een array bevat met componenten (elk ook een object) gezien er maar 1 object actief kan zijn per pagina, is dat nogal dom en zou ik eerder naar een instantie van een object gaan dat ik in het object CMS opsla onder de naam $activeComponent of iets dergelijks.
Elk component is dus een object van een klasse.

Nu wordt de naam van het component uit de URL gehaald door middel van een $_GET['component']. Zo kan men naar de gewenste klasse koppelen om het object aan te maken. Klassen krijgen de naam <Klassenaam>.class.php in de map /extensions (Core componenten (content, contacts, links, ed) zitten in de /core map). Welke objecten er allemaal geïnstalleerd zijn moet het CMS zoeken door de map af te speuren naar .class.php bestanden te zoeken. Het is dus niet de bedoeling dat de componentinfo uit de database komt, zoals dat bij Joomla het geval is (dacht ik).
Maar... Hoe maak je dan een object aan? want gewoon
  1. new $_GET['component']();
zal niet werken, vermoed ik. Hoe doe ik dat dan praktisch? zet ik voor de klassedefinitie een externe aanroep naar de klasse? of maak ik een index.php die de klasse aanroept zodat ik de klasse wel kan includen zonder ze al aan te maken? Dit is een van de punten waar ik constant opstrop...

Voor de admin kan ik dan wel werken met een array van componenten (elk een object) om te navigeren naar de afzonderlijke adminpanelen van elk component. De admin hoofdklasse zou ook een subklasse user hebben die dan kijkt naar de user die inlogt en de nodige permissies verstrekt.

Nu ben ik tijdelijk uitverteld denk ik. Kan iemand hier helpen? Ik geraak er namelijk zelf niet meer uit... 

Oja, BTW, ik zou graag van mijn CMS ook een site willen maken waarmee ik tutorials kan toevoegen. hier moet natuurlijk her en der code tussen, en ik had die graag willen laten coden door highlight_string() of door de Text_highlighter van het PEAR package. Dat inplementeren stelt niet zoveel voor (zoek begintag en eindtag en kleuren maar), maar ik was aan het twijfelen aan de taal voor posts: gwn HTML (TinyMCE dan) of BBCode (editor zelf te schrijven, tenzij iemand een goede editor kent...) maar met BBCode heb ik wel minder ervaring. Dit is dus en van de overwegingen, kan hier ook iemand zijn licht over laten schijnen om voor mij de keuze duidelijker te maken?

Dank

Michiel

3 antwoorden

Gesponsorde links
Offline nemesiskoen - 04/03/2008 13:56
Avatar van nemesiskoen Gouden medaille

PHP expert
Waar jij naar zoekt is een FrontController en je componenten zouden dan Controllers zijn. CakePHP heeft een goede beschrijving op haar website staan hoe dit werkt. Dit concept noemt MVC, iets wat je misschien al tijdens je lessen bent tegengekomen.

Veel plezier met het bouwen van een MVC framework, en mocht je nog vrageen hebben dan zal ik (en vele andere) ons best doen je hierbij te helpen!
Offline JBke - 04/03/2008 14:21
Avatar van JBke PHP gevorderde Ik gebruik, en ook op het werk, Zend Framework, met Smarty template parser en volgende eigen cms: http://www.selfweb.eu

Offline MiST - 04/03/2008 15:40
Avatar van MiST Lid Njah, het is niet de bedoeling CMS'en aan te raden voor gebruik, ik wil juist mijn eigen CMS maken... vanaf scratch.

Anders had ik al lang een Joomla geïnstalleerd. De enige miserie daarmee is dat als je zelf iets daarin wil veranderen dat je altijd zo lang moet zoeken eer je het gevonden hebt, nu al minder, maar dat was toch het geval in het begin. Ik wil gewoon een CMS maken zodat ik zelf de core ken. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.186s