[PHP4] automatisch aanmaken van een instantie

Pagina: 1
Acties:

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Hey,

ik ben bezig met een script, waarin ik een instantie van een klasse wil aanmaken met 'geautomatiseerde' parameters.

Bovenin het script maak ik een array met de namen van de variabelen die aan de instantie moeten worden meegegeven bij het aanmaken, deze array doorloop ik en verwerk ik, en deze wil ik meegeven bij het aanmaken.

Als voorbeeld;

Ik heb een klasse Bedrijf, bij het aanmaken van een instantie hiervan geef ik bedrijfsnaam en contactpersoon mee als parameter.

Voorbeeld; $instantie = New Bedrijf ('Tweakers.net', 'Femme Taken')

Nu heb ik in mijn script dus een array, met daarin 'bedrijfsnaam' en 'contactpersoon'.
Die array wordt automatisch gevuld in een query, en heeft dus een bedrijfsnaam en contactpersoon als daadwerkelijke inhoud.
Na het verwerken van deze array heb ik een string die er als volgt uit ziet:

'Tweakers.net', 'Femme Taken'

Als ik nu het volgende doe; $instantie = New Bedrijf($parameterstring), dan werkt dit natuurlijk niet omdat er nu maar 1 parameter word meegegeven en dat is die string.

Bestaat er een manier om dit wel mogelijk te maken?

Als iets niet duidelijk is dan hoor ik dat graag... :)

  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Ik zou dan die stap 'verwerk array naar string' overslaan, en dan de query resultaten mee geven aan je nieuwe instantie.

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Hmm, het zit iets lastiger dan ik heb uitgelegd... ik zal morgenochtend even het hele script posten hoe ik het tot nu toe heb, zodra ik op m'n werk ben :)

Het is namelijk niet echt een array met resultaten... maar een array met de namen van de variabelen die als parameter moeten worden meegestuurd.

  • TimDJ
  • Registratie: Februari 2002
  • Laatst online: 21:17
als je in de klasse bijvoorbeeld
code:
1
2
3
function Bedrijf($naam, $eigenaar=null) {

}


hebt kan dat wel en dan checken of $naam een array is ofzo

[ Voor 16% gewijzigd door TimDJ op 28-07-2005 23:07 ]

Send encrypted messages - Freelance Drupal Developer


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Je bedoelt dat je weten wilt welke velden er horen bij de parameters die je opgeeft?

Zoiets doen? :

PHP:
1
2
3
$cow = new Bedrijf(array(
'bedrijfsNaam' => 'Bedrijf B.V. ',
'eigenaar' =>'Jan de Vries'));

[ Voor 16% gewijzigd door RedRose op 28-07-2005 23:15 ]

Sundown Circus


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Ik zal even uitleggen wat het idee achter het script is, misschien dat het dan al wat duidelijker wordt.

Ik heb voor elke klasse een zogenaamde 'database handler' klasse, waarin functies staan als 'loadItem', 'saveItem' en 'getItemsInArray'.

Deze database klasse is bijna altijd hetzelfde, behalve de queries die erin staan, en het aanmaken van de instantie binnen de loadItem functie.

Om het voor mezelf makkelijker te maken, leek het me handig om bovenaan de database klasses een array aan te maken met daarin de tabel velden en bijbehorende klasse vars, zodat de functies als loadItem, saveItem en getItemsInArray ook echt 100% hetzelfde zijn en niet keer op keer gekopieerd/aangepast hoeven worden.

In mijn voorbeeld heeft de bedrijven tabel bijvoorbeeld de velden id, naam en contactpersoon.

$fieldArray['id'] = "id";
$fieldArray['sNaam'] = "naam";
$fieldArray['sContactpersoon'] = "contactpersoon";

Bij loadItem haal ik dus de kolommen uit bovenstaande array uit de tabel bedrijven (id, naam en contactpersoon), en daarna wil ik een nieuwe instantie aanmaken, dit moet gebeuren op basis van diezelfde variabelen.

dus New Bedrijf ($id, $sNaam, $sContactpersoon) , maar ik wil dit dus niet in mijn code hebben staan, maar alleen iets met die array.

Hoop dat een en ander nu wat duidelijker is, zoniet, dan post ik morgenvroeg het script wel even :)

[ Voor 7% gewijzigd door TangLeFuzZ op 28-07-2005 23:16 ]

Pagina: 1