login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hoe bouw ik een professionele CMS met PHP en MySQL?

Offline Martijn2008 - 14/04/2009 16:00 (laatste wijziging 14/04/2009 16:03)
Avatar van Martijn2008PHP beginner Hooggeachte Sitemasters,

Content Management Systemen(CMS) zijn niet meer weg te denken uit ons dagelijks leven. Een CMS brengt gigantisch veel voordelen met zich mee. Tot èèn van de grootste voordelen behoort de tijdswinst en de eenvoudigheid van het beheer van de website.

Ik zou graag een CMS willen maken. Het moet een CMS worden waarmee je een paar pagina’s kunt beheren. Er moeten nieuwe pagina’s kunnen worden toegevoegd. Bestaande pagina’s bekeken, bewerkt of verwijderd. Er wordt gebruik gemaakt van een MySQL database. Het gaat hier dus om een simpele CMS, die op een professionele en degelijke manier gescript is! Dus tegelijkertijd ook een technisch hoogstandje.

Voordat ik begin met bouwen ben ik vooral nieuwsgierig naar jullie ideeën. Hoe zouden jullie het aanpakken? Vandaar heb ik een paar vragen voor jullie. Graag niet alleen beantwoorden met A, B of C, maar ook een beetje toelichten, zodat iedereen er wat van kan leren.

1.) Welke programmeerstijl kies je? En waarom?
A.) Relationeel (zonder functies, classes e.d.)
B.) Object Oriented Programming (OOP)
C.) Andere (welke dan?)

2.) Welk framework kies je?
A.) Zend Framework
B.) Codeigniter
C.) CakePHP
D.) Een ander framework(welke dan?)
E.) Wat is een framework?

3. Welke template-engine krijgt jouw voorkeur?
A.) Smarty
B.) Templatepower
C.) Geen
d.) Ik weet niet wat een template-engine is

4. Hoe zou jij de directory structuur aanmaken?

5. Heb je nog tips voor me? Handige links?

Bedankt alvast voor jullie hulp!

Martijn

16 antwoorden

Gesponsorde links
Offline Threetimes - 14/04/2009 16:32
Avatar van Threetimes PHP beginner 1. Vooral A
2. Geen
3. Ligt eraan wat je precies wilt.
4. een hoodfmap met alle code, pagina's in een MySQL db, templates in een aparte map.
5. Ga bij andere cms'en kijken hoe ze het gedaan hebben.
Offline marten - 14/04/2009 16:49
Avatar van marten Beheerder 1. B
Dit omdat je cms code vaak hergebruikt en aanpast. (uit ervaring)

2. D
Me eigen gemaakte.

3. B
Dit omdat hier echt de code gescheiden is van de html. Smarty kan je evengoed php gebruiken in de html  

4. Ik werk met het mvc pattern. Ik heb hier een toevoeging gemaakt met de modules. Kort gezegd:

* Controllers
---- sitecontroller.php
* Models
---- sitecontroller.model.php
* Views
---- tpl
---- jscripts
---- images
* Modules
---- Content
---- ----controllers
---- --------content.php
---- ----models
---- --------content.model.php
---- ----views
---- --------tpl
---- --------------content.tpl
---- --------content.php
---- Nieuws
---- ----controllers
---- --------nieuws.php
---- ----models
---- --------nieuws.model.php
---- ----views
---- --------tpl
---- --------------nieuws.tpl
---- --------nieuws.php

enz
enz

5. Maak het modulair. Uit ervaring weet ik dat er bijna geen klant hetzelfde cms kan gebruiken. Modules echter zijn wel vaak herbruikbaar. Maak gebruik van tinymce voor de content opmaak ed.
Offline Koen - 14/04/2009 16:49 (laatste wijziging 14/04/2009 16:49)
Avatar van Koen PHP expert B
A
C
Offline Joost - 14/04/2009 16:50 (laatste wijziging 14/04/2009 16:52)
Avatar van Joost PHP expert Punt 1 lijkt me OO het beste. Een CMS is een goed voorbeeld waar bijvoorbeeld MVC design pattern erg goed van toepassing is.

Punt 2; Ik heb me nog niet verdiept in frameworks, maar het lijkt me dat je dit kiest op basis van wat jij fijn vind werken, en voor jou het coderen versimpelt/verduidelijkt.

Punt 3; TemplateParser is iets makkelijk, maar ook minder toereikend. Wanneer het om simpele pagina's gaat, is dat zeker voldoende. Anders zul je Smarty moeten gebruiken.
Je moet je wel afvragen of je het wel wilt gebruiken, aangezien het niet erg snel is. Het is min of meer hetzelfde als gewoon PHP. PHP is zelf eigenlijk een soort 'templateparser'. Kijk maar naar dit voorbeeld:
  1. if($true){
  2. echo "Waar";
  3. } else {
  4. echo "Onwaar";
  5. }

  1. if($true){
  2. $tpl->assign("plaats", "Waar");
  3. } else {
  4. $tpl->assign("plaats", "Onwaar");
  5. }

Dat komt op hetzelfde neer, alleen is de 2e code trager. Het kan je wel grote stukken HTML code schelen tussen je PHP. Dat kun je als voordeel zien, maar als je een lekker licht & snel CMS wilt hebben raad ik het je af. Je kan dit ook in de View afhandelen.


Je bestandenstructuur hangt natuurlijk af van wat jij allemaal in je CMS wilt hebben. Sowieso moet je static scheiden van dynamic.
Daarna kun je verder gaan kijken. Ik heb een klein voorbeeldje gemaakt:
./
./static
././templates (mits je deze gaat gebruiken natuurlijk)
././css
././javascript
././images
./dynamic
././applications
./././controllers
./././views
./././models
Offline Raze - 14/04/2009 22:02
Avatar van Raze PHP beginner B
A
B
Offline markla - 14/04/2009 22:14
Avatar van markla PHP interesse A ( een goede relationele database levert op ALLE vlakken winst op)
A ( om dat ik die nou eenmal gebruik en geen ervaring met ander heb.)
C (lekker zelf bouwen is heel goed voor het leer proces   )
Offline shibble - 14/04/2009 22:18
Avatar van shibble MySQL interesse 1: B
Zoals marten al zegt.

2: A
Ik weet niet waarom, ik ben bezig met een eigen CMS waarmee ik gebruik maak van Zend Framework, het werkt lekker makkelijk en simpel allemaal (A) het heeft lekker veel features.

3: B
Als ik met een template engine weer zou gaan werken zou ik voor TemplatePower kiezen, ik heb er eerder mee gewerkt en ik vindt het een harstikke fijne template engine.

4: MVC
Ik maak zelf gebruik van het MVC pattern en de mapindeling zoals het in het in de ZF documentatie staat met de modular pattern.

5: zoals marten alzegt gebruik modulair is ook lekker overzichtelijk, en zoals het bij mijwerkt hoef ik alleen maar de module map te uploaden en de tabellen in de database te toevoegen en de module is toegevoegd.
bij andere CMS's kijken hoe hun het hebben gedaan is ookeengoede .
Offline Martijn2008 - 15/04/2009 00:04 (laatste wijziging 15/04/2009 00:26)
Avatar van Martijn2008 PHP beginner Als andere bestaande CMS'en het grote voorbeeld zijn. Wat is dan nog de reden om een CMS zelf te schrijven?

Stel ik kies voor Joomla of Wordpress. Whatever you want! Dan zou ik daar ook modules bij kunnen scripten. Lekker makkelijk. Dan kan ik updates downloaden en hoef ik in principe weinig onderhoud aan mijn site te doen. Behalve dan af en toe updates downloaden en die updates installeren. That's all!

Mijn vraag is dus, waarom zou ik zelf nog een CMS schrijven terwijl ik heel eenvoudig een CMS kan downloaden? Ik kan in die gedownloade CMS dingen veranderen en modules toevoegen etc. Dat is efficiënt voor mijn tijd en reduceert de kosten van mijn website enorm!
Offline shibble - 15/04/2009 06:35
Avatar van shibble MySQL interesse Andere CMS'en mag je toch niet doorverkopen? dat dacht ik althans, ik zelf maak een eigen CMS omdat het proffesioneler staat, het is van mij, eigen codering dus je weet ook wat wat is... en zo zijn er nog tal van voordelen van een eigen CMS.
nadeel, het bouwen ervan kost veel tijd . maar achteraf is dat het wel waard als je het goed doet .
Offline Threetimes - 15/04/2009 07:19
Avatar van Threetimes PHP beginner
Martijn2008 schreef:
Als andere bestaande CMS'en het grote voorbeeld zijn. Wat is dan nog de reden om een CMS zelf te schrijven?

Stel ik kies voor Joomla of Wordpress. Whatever you want! Dan zou ik daar ook modules bij kunnen scripten. Lekker makkelijk. Dan kan ik updates downloaden en hoef ik in principe weinig onderhoud aan mijn site te doen. Behalve dan af en toe updates downloaden en die updates installeren. That's all!

Mijn vraag is dus, waarom zou ik zelf nog een CMS schrijven terwijl ik heel eenvoudig een CMS kan downloaden? Ik kan in die gedownloade CMS dingen veranderen en modules toevoegen etc. Dat is efficiënt voor mijn tijd en reduceert de kosten van mijn website enorm!
Als je niet te veel wilt doen zou ik zeker een cms van een ander gebruiken. Wordpress is volgens mij GPL.

Redenen om een CMS zelf te willen maken:
- Je wilt specifieke mogenlijkheden
- Je vindt het leuk om te doen
- Je wilt ervaring opdoen
- Je verveelt je en je weet niks beters
Offline jaronneke - 15/04/2009 15:49 (laatste wijziging 15/04/2009 15:49)
Avatar van jaronneke MySQL interesse Nog een toevoegende reden:

Als je een eigen CMS ontwikkeld is hij VELE malen gebruiksvriendelijker voor de klant!
Offline Martijn2008 - 15/04/2009 19:26 (laatste wijziging 15/04/2009 19:28)
Avatar van Martijn2008 PHP beginner Stel ik kies voor Zend Framework, met als programmeerstijl OOP. Ik wil de geïntegreerde template-engine van Zend Framework gebruiken. Ik kies voor de laatste versie van Zend Framework (V1.8).

Het gaat hem dus om een super simpele CMS die gemaakt is met Zend Framework. Je moet nieuwe pagina’s kunnen toevoegen. Bestaande moeten kunnen worden bekeken, bewerkt en verwijderd. Tevens moet er een mogelijkheid zijn voor de administrator van de website om de content naar zijn of haar wensen aan te passen.

Ik loop momenteel van de ene fout in de andere fout met Zend Framework. Dat werkt niet echt motiverend, daarbij kost het me enorm veel tijd. Mijn vraag is daarom ook: ``Is er iemand bereid om mee te helpen met het bouwen van die CMS, die zelf al kennis heeft van Zend Framework en het mij en andere ook wil leren?`` Dan openen we een nieuwe topic waar we ons alleen hierop gaan focussen. ``Een simpele professionele CMS gemaakt met Zend Framework.`` Dan kunnen we mooi van elkaar leren. Meer leren in minder tijd, is dat niet fantastisch?
Offline Flex1986 - 16/04/2009 12:06
Avatar van Flex1986 Gouden medaille

Senior Member
Begin eerst te oefenen met het framework dat je wil gebruiken en start niet gelijk met je CMS. Mijn ervaring met frameworks is dat als je gelijk start dat je halverwege op functies van je framework stuit die je eigenlijk veel eerder al het kunnen gebruiken. Als je eerst oefent door bijvoorbeeld een klein blogje te maken dan gebruik je al functies waardoor je je thuis gaat voelen in het framework.

Zelf vindt ik Zend Framework een slechte keuze voor een simpel CMS systeem. Deze is vrij log en heeft een grote leercurve Zend Framework is leuk voor onwijs grote projecten voor een simpel CMS zou ik voor CodeIgniter of Kohana gaan.
Offline Martijn2008 - 21/04/2009 22:46
Avatar van Martijn2008 PHP beginner Ik zou graag wat voorbeelden willen zien van eenvoudige content managementsystemen, die met Zend Framework gebouwd zijn. Het makkelijkste zou zijn dat ik de code ook nog kan downloaden. Dan kan ik een beetje met de code spelen en kijken hoe het allemaal ongeveer werkt. Ik zou het onwijs leuk vinden als iemand een site kent waar ik zoiets kan downloaden.
Offline vinTage - 21/04/2009 22:53 (laatste wijziging 21/04/2009 22:53)
Avatar van vinTage Nieuw lid Ik vind, dat jij eerst maar eens kennis moet maken met google of een andere deftige zoekmachine.
Met je voorlaatste post wilde ik je topic nog sluiten en je verwijzen naar samenwerken, maar na je laatste post verwijs ik je liever naar eoa zoekmachine..

Kom met concretere vragen af, of dit topic krijgt een slotje
Offline ArieMedia - 22/04/2009 09:53 (laatste wijziging 22/04/2009 09:55)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Antwoorden:
1, A
2, F. (Geen)
3, A
4, ik gebruik het volgende:
  1. ---
  2. root
  3. ---
  4. |-config
  5. |-template
  6. |-templates
  7. |-css
  8. |-gfx (afbeeldingen)
  9. |-brick
  10. |-module1
  11. |-module2 (enz..)
  12. |-cache
  13. |-includes


In Includes staat bijvoorbeeld Smarty, dit zijn dus extra toevoegingen op de site, in brick staan alle modules. in config staat oa de db & wat regel-scripts, deze regelt zowbeetje alles qua aansturing 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.226s