[php] XML/XSLT en lazy loading

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Topicstarter
Ik ben momenteel bezig om een eigen blog-pakket te ontwikkelen. De bedoeling is dat dit pakket zo object-georiënteerd mogelijk wordt.

Bijvoorbeeld: Het blog object heeft artikelen. Artikelen hebben reacties en gebruikers. Gebruikers hebben artikelen en Reacties. Reacties hebben gebruikers en een artikel.

Al deze eigenschappen worden pas geladen wanneer ernaar gevraagd wordt en wanneer er sprake van een collectie (zoals bijvoorbeeld reacties) dan worden ook alleen die elementen geladen die opgevraagd worden.

Nu zou ik graag ook gebruik willen maken van XML en XSLT voor de presentatie van deze gegevens. In dat geval zal ik echter alles in één keer moeten laden en in een XML moeten stoppen en verlies ik de mogelijkheid om dingen alleen te laden wanneer ze nodig zijn in de template.

Een andere mogelijkheid zou zijn om te werken met een template engine, zoals bijvoorbeeld Smarty (waar ik zelf goed bekend mee ben). Hierbij zou ik wel gebruik kunnen maken van lazy loading.

Beide manieren hebben zo hun voor- en nadelen. XML/XSLT is natuurlijk makkelijker te integreren in andere toepassingen, maar het zou in dit geval wel trager worden.

Wat is jullie mening/advies in deze zaak? Een losse template engine gebruiken (en zo ja, welke) of toch voor XML/XSLT gaan. Of kan ik beter een totaal andere aanpak kiezen?

Ik ontken het bestaan van IE.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik weet niet wat je precies zou willen opslaan in xml? Want het gebruiken van xml is vaak een stuk trager dan het gebruiken van een database waar deze gegevens instaan.

Het lijkt mij dat hier een database veel geschikter voor is. En of je dit nou met smarty doet of met een eigen parser maakt an sich niet veel uit.

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
ik zou geen xml/xslt gebruiken tenzij je van te voren heel zeker weet dat je data ook in andere formaten gebruikt moet gaan worden en het je dus veel tijd kan schelen.

Het idee van xslt was leuk, maar in de praktijk zie je er nog vrij weinig van terug en steeds vaker toch een normale abstractie laag van clean content in een DB -> presentatie laag.

Zelf ben ik sinds kort behoorlijk fan geworden van twig-project.org omdat het voor mij precies doet wat ik van een template engine verwacht. Omzetten van mijn template tags/lingo naar een php bestand. Geen caching etc, zodat ik dat mooi allemaal in mijn eigen code kan regelen waar ik dat nodig heb.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • bvdbijl
  • Registratie: Januari 2010
  • Laatst online: 23-01-2023
Ik zou je eigen simpele Template-engine schrijven
Dan weet je precies waar alles zit en zit er alleen in wat je nodig hebt zodat het niet onnodig bloated wordt

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
bvdbijl schreef op dinsdag 17 augustus 2010 @ 16:02:
Ik zou je eigen simpele Template-engine schrijven
Dan weet je precies waar alles zit en zit er alleen in wat je nodig hebt zodat het niet onnodig bloated wordt
En dat je het ook altijd in je eentje moet blijven onderhouden..


Ik snap het nut van zelf maken wel als leer process, maar het argument dat je dan alles weet enzo klinkt altijd zo nutteloos. Je gaat toch ook niet je eigen auto motor maken omdat je dan weet waar alles zit en het geen kapje heeft wat je niet nodig hebt.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • bvdbijl
  • Registratie: Januari 2010
  • Laatst online: 23-01-2023
kwaakvaak_v2 schreef op dinsdag 17 augustus 2010 @ 17:27:
[...]


En dat je het ook altijd in je eentje moet blijven onderhouden..


Ik snap het nut van zelf maken wel als leer process, maar het argument dat je dan alles weet enzo klinkt altijd zo nutteloos. Je gaat toch ook niet je eigen auto motor maken omdat je dan weet waar alles zit en het geen kapje heeft wat je niet nodig hebt.
Tja, het is maar net wat je wilt
Ik vind het zelf handig, maar ik heb even hier naar gekeken: http://www.twig-project.org/ en ik moet zeggen dat ik dat ook erg interessant vind.
Verder is er natuurlijk nog Smarty http://www.smarty.net/ maar die had je vast al gevonden

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Smarty, wie is er niet groot mee geworden. Maar intussen wel achterhaald vind ik. Leuk dat het kan cachen, maar eigenlijk wil je dat toch helemaal niet in een template engine? Caching is een veel complexer proces dan gewoon maar opslaan van HTML voor een bepaalde tijd.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

Verwijderd

kwaakvaak_v2 schreef op zondag 22 augustus 2010 @ 17:55:
Smarty, wie is er niet groot mee geworden. Maar intussen wel achterhaald vind ik. Leuk dat het kan cachen, maar eigenlijk wil je dat toch helemaal niet in een template engine? Caching is een veel complexer proces dan gewoon maar opslaan van HTML voor een bepaalde tijd.
Eens, maar vaak gebruik ik smarty in een cms, voor sommige gebruikers, welke dan iets meer kunnen doen zonder echt te kunnen programmeren :) En dan zet ik die caching wel aan ivm performance.

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Verwijderd schreef op zondag 22 augustus 2010 @ 18:21:
[...]

Eens, maar vaak gebruik ik smarty in een cms, voor sommige gebruikers, welke dan iets meer kunnen doen zonder echt te kunnen programmeren :) En dan zet ik die caching wel aan ivm performance.
Caching van de compiled template's of caching van de output? want dat zijn in smarty helaas twee verschillende dingen. De eerste is precies de reden waarom ik nu bezig ben met het inzetten van twig binnen drupal, een template engine mag van mij best de template taal omzetten naar een tussen variant in php. Maar het tweede handel ik persoonlijk liever op een ander nivo af omdat daar veel meer bij komt kijken. Is het een anonieme gebruiker? Zo ja mag die best naar 5 minuten oude info kijken, is het een ingelogde gebruiker die toevallig net een reactie ergens bij geplaatst heeft? Dan wil ik juist geen cache gebruiken. Om dat allemaal met smarty te doen gaf behoorlijk veel overhead in mijn code altijd. Twig zorgt er nu juist voor dat het alleen doet wat het moet doen, het relatief makkelijk houden voor frontend en users om zelf stukjes template te maken zonder dat ik php moet toestaan in mijn templates. Caching handelt in mijn geval drupal zelf prima af, maar ook het zend-framework prototype wat ik gemaakt heb, doet dat prima zelf. Allemaal gebaseeerd op een cache mechanisme wat buiten om de template logica gaat.

Niet dat smarty slecht is, helamaal niet.. Maar het principe vind ik gewoon niet meer van deze tijd :)

//end_of_twig_promo_talk ;)

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
cyberstalker schreef op dinsdag 10 augustus 2010 @ 20:22:
Ik ben momenteel bezig om een eigen blog-pakket te ontwikkelen. De bedoeling is dat dit pakket zo object-georiënteerd mogelijk wordt.

Bijvoorbeeld: Het blog object heeft artikelen. Artikelen hebben reacties en gebruikers. Gebruikers hebben artikelen en Reacties. Reacties hebben gebruikers en een artikel.

Al deze eigenschappen worden pas geladen wanneer ernaar gevraagd wordt en wanneer er sprake van een collectie (zoals bijvoorbeeld reacties) dan worden ook alleen die elementen geladen die opgevraagd worden.

Nu zou ik graag ook gebruik willen maken van XML en XSLT voor de presentatie van deze gegevens. In dat geval zal ik echter alles in één keer moeten laden en in een XML moeten stoppen en verlies ik de mogelijkheid om dingen alleen te laden wanneer ze nodig zijn in de template.

Een andere mogelijkheid zou zijn om te werken met een template engine, zoals bijvoorbeeld Smarty (waar ik zelf goed bekend mee ben). Hierbij zou ik wel gebruik kunnen maken van lazy loading.

Beide manieren hebben zo hun voor- en nadelen. XML/XSLT is natuurlijk makkelijker te integreren in andere toepassingen, maar het zou in dit geval wel trager worden.

Wat is jullie mening/advies in deze zaak? Een losse template engine gebruiken (en zo ja, welke) of toch voor XML/XSLT gaan. Of kan ik beter een totaal andere aanpak kiezen?
toon volledige bericht
Er is ook nog een derde mogelijkheid: geen template engine gebruiken. Als je een strikte scheiding houdt tussen je model (database) en je view (templates) dan kan je code heel georganiseerd blijven en heb je de volledige kracht van PHP, zonder dat je meteen die keuze hoeft te maken. Vervolgens zou je dat nog kunnen uitbreiden met een template engine waar nodig.
Pagina: 1