[php] abstracte data.

Pagina: 1
Acties:

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ik ben bezig met een projectje in php, en nou loop ik tegen een probleem aan. Ik wil graag een soort abstracte data-class maken. Deze class moet dus data kunnen ophalen en bewaren. Hiermee wil ik bereiken dat ik in andere modules, onafhankelijk van de databron, gewoon data kan ophalen.
Ik zou dus theoretisch op het laatste moment nog kunnen beslissen of ik mysql wil gebruiken als databron, of bijvoorbeeld xml.
Nou zit ik alleen met het volgende probleem:
"SELECT title, date FROM pages LIMIT 1,10";
Hoe zou ik zoiets (dus dat LIMIT gedoe) kunnen implementeren? Misschien moet ik een eigen query language ontwerpen oid? En hoe hebben jullie dit gedaan?
En natuurlijk is het ook nog mogelijk dat er allang zo'n "data-abstractie-laag" bestaat. Zo ja, welke :p ?

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Uhm ik heb ooit iets soortgelijks voor mezelf geschreven, waarom niet gewoon direct de query als argument meegeven en dat vervolgens je class het uitvoert en de rijen of whatever je wilt teruggeeft?
PHP:
1
<?$mydb = new db();$mydb->Execute ("SELECT title, date FROM pages LIMIT 1,10");$while ($row = $mydb->GetRow()) {    // whatever}?>

Ofzoiets?

Het is mischien leuk (had ik ook gedaan) om een stackbased mysql abstraction layer te schijven, hoef je niet steeds te allerlei resources bij te houden als je subqueries wilt 'simuleren'.

Verwijderd

wat bedoel je precies met dat LIMIT gedoe? bedoel je hoe je die in xml of flat text kan gebruiken?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

die limit zou je gewoon met array_slice() kunnen 'emuleren'

Klaar voor een nieuwe uitdaging.


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Op zich zou het toch wel mogelijk moeten zijn om sql naar XPath om te zetten. Als je het echter simpel wil, maak je idd. een eigen query language die je in het script vervolgens omzet naar sql, XPath of whatever.

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ja freak007, dat bedoel ik dus. Zijn er trouwens al alternatieven hiervoor? Ik ben vast niet de eerste php-developer die tegen dit probleem aanloopt. Ik zat zelf te denken aan zoiets:
PHP:
1
<?class CDataLayer{  function read{  }}class CXmlDataLayer extends CDataLayer{  function read{    //blah  }?>

Hiermee wil ik bereiken dat je dus, onafhankelijk van de taal functies hebt die bijvoorbeeld een record opzoeken oid. Is dit misschien een leuk project om met z'n allen te maken?

}

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
Hier ben ik ook al een tijdje naar op zoek.
Het is natuurlijk mogelijk je eigen querytaal te ontwikkelen, maar je zou verwachten dat het W3C oid daar al een prachtige standaard voor heeft ontwikkeld, waar goed over is nagedacht.
Heeft iemand enig idee of er zoiets bestaat? Misschien mbravenboer (het heeft tenslotte te maken met transformaties *D )?

Pas de replâtrage, la structure est pourrie.


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Tja je hebt XQuery, maar het lijkt me zo op het eerste gezicht niet gemakkelijk een gebruikelijke query om te zetten naar een XQuery (verder geen ervaring).

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
XQuery is zeker een goede querytaal, maar is eigenlijk ook weer gericht op een bepaald datatype, nl: xml. XQuery is eigenlijk een soort uitbreiding op XPath zodat je wat meer invloed hebt over de resultset die je terugkrijgt.

Volgens mij zijn er trouwens wel scripts die sql queries parsen, zodat je die makkelijk zou kunnen omzeten naar XPath of whatever. Die parsers worden vooral gebruikt in tooltjes waarbij je een query opgeeft en de results terug worden gegeven in een xml formaat i.p.v. een array zoals die direct uit de database komt. Een voorbeeld hiervan is XML/sql2xml uit het PEAR project.
Pagina: 1