Ik ben bezig met een cms waar losse plugins (OOP) het werk verrichten. Nu is er regelmatig een update in een of meer plugins. Hiervoor wil ik graag een versioning systeem opzetten als Subversion of CVS. Maar: hoe doe ik dat? Ik heb alleen een aantal gb's aan schijfruimte, php en mysql tot mijn beschikking. Wat rondzoeken op Google en phpclasses.org levert niet het gewenste resultaat op: vaak zijn het php libraries die een extension kunnen vormen van Subversion of CVS. Echter kan ik niet iets als Subversion gebruiken aangezien dat als software geïnstalleerd moet worden, en ik kan dat niet zomaar doen (heb hosting, geen eigen server).
Wat ik uiteindelijk wil bereiken is dat een client (het cms op een niet-eigen server) vraagt aan de "master" (mijn eigen cms op mijn eigen server) of er voor alle plugins die de client heeft geinstalleerd updates beschikbaar zijn.
Ik heb al een soort van .ini parser geschreven, dus ik dacht om een .ini file aan te maken waarin per plugin de versie van de plugin in staat. Voorbeeldje:
In deze ini staan alle plugins vermeld, en de client vergelijkt zijn eigen versie met de versie die de master heeft. Is er een nieuwe versie beschikbaar, dan wordt de php code en mysql geupdate door een zip te downloaden van de plugin en die te installeren.
Nu de hamvraag: gaat zoiets werken, zie ik wat belangrijks over het hoofd. En misschien: bestaat er al een dergelijk systeem. Als dat zo is, hoe werkt dat dan?
Omdat dit een vrij essentieel onderdeel gaat worden van het cms is een goede opzet van groot belang. Het zal uiteindelijk "maar" een plugin in het cms worden, en je kan natuurlijk altijd zelf (handmatig) de code updaten, desalniettemin vind ik het belangrijk genoeg om er even meer mensen naar te laten kijken. Alvast bedankt voor commentaar op mijn idee en andere suggesties!
Wat ik uiteindelijk wil bereiken is dat een client (het cms op een niet-eigen server) vraagt aan de "master" (mijn eigen cms op mijn eigen server) of er voor alle plugins die de client heeft geinstalleerd updates beschikbaar zijn.
Ik heb al een soort van .ini parser geschreven, dus ik dacht om een .ini file aan te maken waarin per plugin de versie van de plugin in staat. Voorbeeldje:
code:
1
2
3
4
5
6
7
| [blog] version=0.05 last-update=2007-01-23 [gallery] version=0.01 last-update=2007-01-11 |
In deze ini staan alle plugins vermeld, en de client vergelijkt zijn eigen versie met de versie die de master heeft. Is er een nieuwe versie beschikbaar, dan wordt de php code en mysql geupdate door een zip te downloaden van de plugin en die te installeren.
Nu de hamvraag: gaat zoiets werken, zie ik wat belangrijks over het hoofd. En misschien: bestaat er al een dergelijk systeem. Als dat zo is, hoe werkt dat dan?
Omdat dit een vrij essentieel onderdeel gaat worden van het cms is een goede opzet van groot belang. Het zal uiteindelijk "maar" een plugin in het cms worden, en je kan natuurlijk altijd zelf (handmatig) de code updaten, desalniettemin vind ik het belangrijk genoeg om er even meer mensen naar te laten kijken. Alvast bedankt voor commentaar op mijn idee en andere suggesties!