aanroepende class controleren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

05/03/2012 09:25:14
Quote Anchor link
Hallo,

Ik heb 2 classes. Class A en class B.

Class B wordt aangeroepen vanuit class A.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
class A
{

  public someFunction() {
    $classb = new B();
  }

}

?>


Nu wil ik dat class B alleen vanuit class A mag worden aangeroepen. Iemand een idee hoe ik dit voor elkaar kan krijgen? Ik wil dus in class B controleren of de instantie van class B is aangemaakt in class A?

Iemand een idee of dit mogelijk is?
 
PHP hulp

PHP hulp

23/02/2025 01:21:12
 
Erik Rijk

Erik Rijk

05/03/2012 09:29:35
 
Ozzie PHP

Ozzie PHP

05/03/2012 09:36:59
Quote Anchor link
Erik , hoe zou je dat dan kunnen toepassen binnen class B?
 
Pim -

Pim -

06/03/2012 00:52:22
Quote Anchor link
Dat kan wel, via get_called_class() geloof ik. Het is alleen niet verstandig, omdat je zo in ogenschijnlijk dezelfde situatie een ander resultaat kan krijgen. Probeer met verschillende instances van B te werken die je dan via DI instelt.
 
Ozzie PHP

Ozzie PHP

06/03/2012 06:25:13
Quote Anchor link
Pim, thanks. Ik had al gekeken naar get_called_class, maar probleem is dat dat (volgens php.net) alleen kan als je een functie statisch aanroept.

Het probleem is dat ik dus class B altijd vanuit class A wil aanroepen, maar je kan (per ongeluk) class B ook los aanroepen. (class B abstract maken is helaas geen optie). Dus vandaar het idee om te controleren in class B door welke class hij is aangeroepen. Maar als het niet anders kan dan vrees ik dat ik gewoon pech heb.
 
Nick van der heijden

nick van der heijden

06/03/2012 06:50:37
Quote Anchor link
Ik zie geen class b $classb = new b (); is object geen class
 
Ozzie PHP

Ozzie PHP

06/03/2012 08:14:33
Quote Anchor link
Ja.. object. Het gaat erom dat alleen vanuit Class A dit gedaan mag worden:

$classb = new B();

Buiten Class A mag dat niet gedaan worden. Maar volgens mij kan ik dat nooit voor elkaar krijgen.
 
Wouter J

Wouter J

06/03/2012 08:54:33
Quote Anchor link
Nee, en ik zou het ook niet willen. Weg dynamiek van de code, klasse B moet niet eens doorhebben dat hij in klasse A wordt aangeroepen. Klasse B doet gewoon zijn ding, waar hij goed in is, en klasse A waarin hij goed is, als A B nodig heeft dan gebruikt hij hem.
 
Ozzie PHP

Ozzie PHP

06/03/2012 08:57:54
Quote Anchor link
Ja, k snap het wel... misschien niet helemaal net OOP, maar ik wil het toch graag voor elkaar krijgen :)
 
Pim -

Pim -

06/03/2012 13:35:24
Quote Anchor link
Kan je je situatie iets beter uitleggen? Dan kunnen we je misschien beter helpen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.