[php] core classes design

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Welke classes heb je zoal nodig tegenwoordig in een 'core' van een website / cms / forum / webwinkel / alleskunner site?

Inmiddels heb ik een dbClass, een stringClass (UBB, smileys, multi-language strings, etc) en een errorHandle class. Als je een userClass (lijkt me logische volgende stap) gaat bouwen, komt er een database model bij kijken, of je moet het zonder db doen. Dat voelt een beetje raar, dat je met zeer flexibele classes vast zit aan één tabel-layout zit.

Welke klassen/modules/plugins of hoe jullie het noemen hebben jullie in de kast liggen? En hoe integreren jullie ze met een database?

[ Voor 5% gewijzigd door Glimi op 12-01-2004 22:30 ]


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Kernels? 99,99% van de mensen verstaan iets heel anders onder kernels, namelijk OS-kernels. Daarom pas ik de boel even aan voor je :)

Acties:
  • 0 Henk 'm!

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 18-09 12:47

killercow

eth0

waarschijnlijk zal je ook iets van output handlers willen gebruiken, het lijkt me vrij sterk dat je gewoon domweg dingen als pure html naar de browser gaat dumpen, een taal als xul (mozilla) is hier al veel logischer voor, hiermee kun je namenlijk de layout al redelijk van je skin losmaken.

* killercow gaat opzoek naar een xul based website opmaak parser

openkat.nl al gezien?


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Het liefste zou ik daarvoor XML willen gebruiken icm XTSL (voor XHTML) en dan server-side omzetten, met je eigen XSLT (in welke volgorde moeten die letters toch...) core classes... maar da's veel werk. Sablotron werkt nl niet overal.

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

• database
• e-mail versturen
• user class
• interface voor template ( ik gebruik smarty )
• logging ( aantal bezoekers, welke pagina's ze bezoeken, beperkt browser en systeem info. Maak alleen gebruik van User-agent )

Alle integratie met een database, doe ik via een functie binnen zijn eigen class. De data die naar de functie toegaat is alle data die ik op dat moment beschikbaar heb. Dan hoef ik alleen nog maar die functie wijzigen aan de hand van de database model.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Skaah schreef op 12 januari 2004 @ 23:06:
Het liefste zou ik daarvoor XML willen gebruiken icm XTSL (voor XHTML) en dan server-side omzetten, met je eigen XSLT (in welke volgorde moeten die letters toch...) core classes... maar da's veel werk. Sablotron werkt nl niet overal.
Een goede host ondersteunt het echt wel. En XSLT werkt erg fijn, Sablotron ook, er is alleen 1 groot nadeel: 't is ontzettend traag. Maar gelukkig kan je dit ondervangen door cachen, lijkt me altijd nog sneller/minder werk dan een eigen XSLT-parser.

Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 19-09 17:00
Ik heb zelf nog een makkelijk cms functie om gegevens uit de database te halen en opgegeven kolommen uit te printen in een tabel. Dit is dus een makkelijke tabel-functie. Ook heb ik een klasse om een formulier mee te maken. Gewoon heel simpel aan te roepen:
PHP:
1
2
3
4
$form = new cls_form(pagina.php,"multipart");
$form->input("naam", "voorschrift","waarde","css_class","extra opties");
$form->checkbox("naam","voorschrift","welke is geselecteerd","check1|check2|check3","css_class", "extra opties");
$form->sluit_af();'

Hier wordt een simpel formulier gemaakt. Voor het voorbeeld heb ik begrijpbare waardes meegegeven. De functie sluit af print nog een ok en wis button uit. Alles wordt in een tabel met 2 kolommen uitgeprint: voorschrift en de input zelf.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat je toch wat dieper moet denken. Uiteraard is een dbklasse wel nodig en zal je ook wel van die typische dingen als userklasses en mailklasses nodig hebben maar imo zijn dat geen echte coreklasses.

Bij coreklassen denk ik meer aan dingen als Collection klassen (Container en Hashmap) en Iterator klassen. Als je met objecten gaat werken vind ik de standaard methoden die PHP aanbied voor het maken van arrays, hashmaps en het overlopen van de waarden in zo'n verzameling ongeschikt.
Bijvoorbeeld foreach zal steeds kopiën maken bij het overlopen van de elementen in de verzameling wat je bij objecten meestal niet zal willen. Een eigen iterator-klasse die de references niet breekt is dan toch noodzakelijk.

Vervolgens zou je nog kunnen werken aan persistence mappers om bewaren en opvragen van gegevens te vereenvoudigen. Daarna pas zou ik aan dingen als userklasses en mailklasses gaan denken.
Kortom veel werk aan dingen die niet te maken hebben met het doel at je probeert te realiseren. Het is jammer dat PHP wat dat betreft totaal niet geëvolueerd heeft over de laatste 4 jaar. Dit terwijl .NET en J2EE al standaard zo'n dingen voorzien.

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Verwijderd schreef op 13 januari 2004 @ 12:39:
Ik denk dat je toch wat dieper moet denken. Uiteraard is een dbklasse wel nodig en zal je ook wel van die typische dingen als userklasses en mailklasses nodig hebben maar imo zijn dat geen echte coreklasses.

Bij coreklassen denk ik meer aan dingen als Collection klassen (Container en Hashmap) en Iterator klassen. Als je met objecten gaat werken vind ik de standaard methoden die PHP aanbied voor het maken van arrays, hashmaps en het overlopen van de waarden in zo'n verzameling ongeschikt.
Bijvoorbeeld foreach zal steeds kopiën maken bij het overlopen van de elementen in de verzameling wat je bij objecten meestal niet zal willen. Een eigen iterator-klasse die de references niet breekt is dan toch noodzakelijk.

Vervolgens zou je nog kunnen werken aan persistence mappers om bewaren en opvragen van gegevens te vereenvoudigen. Daarna pas zou ik aan dingen als userklasses en mailklasses gaan denken.
Kortom veel werk aan dingen die niet te maken hebben met het doel at je probeert te realiseren. Het is jammer dat PHP wat dat betreft totaal niet geëvolueerd heeft over de laatste 4 jaar. Dit terwijl .NET en J2EE al standaard zo'n dingen voorzien.
Het klinkt allemaal superinteressant wat je daar zegt, maar ik snap er echt de ballen van. Dit komt natuurlijk omdat ik eigenlijk vrijwel alleen in php programmeer, en waarschijnlijk de TS ook. In php heb ik redelijk veel ervaring, maar dit komt me allemaal totaal onbekend voor. Zou je je tekst misschien kunnen ondersteunen met links/uitleg wat b.v. een persistance mapper is?

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

chris schreef op 13 januari 2004 @ 12:21:
Een goede host ondersteunt het echt wel. En XSLT werkt erg fijn, Sablotron ook, er is alleen 1 groot nadeel: 't is ontzettend traag. Maar gelukkig kan je dit ondervangen door cachen, lijkt me altijd nog sneller/minder werk dan een eigen XSLT-parser.
Toch snap ik nog steeds niet waarom iedereen altijd zeurt over de traagheid van XSLT/Sablotron. Zelf vind ik dat behoorlijk snel. Zie bijvoorbeeld mijn minimale GoT. Hier zie je de uitkomst (XHTML) van een XSLT transformatie van de GoT XML. De XML is redelijk omvangrijk, de stylesheet is redelijk complex, maar toch ragt ie de transformatie er in 0,16 seconden doorheen (voor de frontpage) - dat vind ik niet echt traag, het is in ieder geval niet de bottleneck van dit appje.

Rustacean


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Kijk 's in dit topic: [rml][ PHP/XSLT] Sablotron erg langzaam?[/rml]

Maar genoeg offtopic geneuzel nu :p

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Mijn core heeft op het moment:

- database class;
- bb parser;
- cms;
- login functions;
- profile zooi;
- sessionhandler;
- user functions.

Denk dat dat zoal de basis is. Een forum zou ik eerder een module noemen, dan een deel van de core.

[ Voor 26% gewijzigd door Grijze Vos op 13-01-2004 15:13 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1