[PHP] vraag over childs van klassen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik werk momenteel aan een plugin systeem.
In dit systeem heb ik een hoofd klasse "pluginmanager" en allerlei child klassen (die kan ik dus inladen).
Ik zal ff een stukje versimpelde code posten met wat ik precies bedoel.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class pluginmanager{
  var plugin_array=array();
  function register_value($waarde){
    //waarde registreren
  }

  function load_new_plugin($plugin_name){
    //maak nieuwe instantie aan
    $this->plugin_array[$plugin_name]=new $plugin_name;
    //laat plugin zichzelf alle waardes declareren
    $this->plugin_array[$plugin_name]->init_plugin($this);
  }
}

class plugin_a{
  var $caller_class
  
  function init_plugin($my_caller){
    $this->caller_class=$my_caller;
    // de child klasse moet dus zijn eigen waardes bekend maken aan pluginmanager 
    // wanneer deze waarde voorkomt op de pagina dan zal pluginmanager deze plugin aanroepen
    $this->caller_class->register_value("bepaald_stuk_string");
    $this->caller_class->register_value("nog_een_string");
  }
}

class plugin_b{
  var $caller_class
  
  function init_plugin($my_caller){
    $this->caller_class=$my_caller;
    // de child klasse moet dus zijn eigen waardes bekend maken aan pluginmanager 
    // wanneer deze waarde voorkomt op de pagina dan zal pluginmanager deze plugin aanroepen
    $this->caller_class->register_value("plugin_b");
  }
}

// en nu de pluginmanager laden en daarna vertellen welke klassen geladen moeten worden.
$plugins = new pluginmanager;
$plugins->load_new_plugin("plugin_a");
$plugins->load_new_plugin("plugin_b");


Wat zend nu tegen me zegt op het punt dat ik vanuit bv klasse a een waarde wil registreren is dat er een NIEUWE instantie is aangemaakt van pluginmanager.
Dus op dat moment zijn er dus 2 instanties van pluginmanager terwijl dat altijd 1 zou moeten zijn.

Heeft iemand misschien een id hoe ik dit plobleem op kan lossen?
Of is wat ik wil niet mogelijk?

[ Voor 5% gewijzigd door Verwijderd op 11-01-2006 11:14 ]


Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

kijk eens naar regel 11. daar geef je $this mee

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

PHP 4 zeker? Je zult met references moeten werken.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MeIsTwisted schreef op woensdag 11 januari 2006 @ 10:37:
kijk eens naar regel 11. daar geef je $this mee
ja dat is ook de bedoeling .. Ik geef het object van pluginmanager mee aan mijn childs.

2: is het in php5 wel mogelijk wat ik wil?

Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

zoek eens, zoals .oisyn zegt, naar references.

hint: &

edit:
het kan in php 4 en 5

[ Voor 32% gewijzigd door MeIsTwisted op 11-01-2006 11:34 ]

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het is in php4 ook mogelijk, je moet alleen je variabelen doorgeven en toekennen als references

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1