Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP5] aufrufende / erzeugende Klasse / Objekt ermitteln

Empfohlene Antworten

Veröffentlicht

hi,

gibt es eine funktion die mir das Objekt oder die Klasse zurückgibt die eine Methode aufruft bzw. ein Objekt erzeugt ?

ich will/kann nicht jedesmal $this als parameter mit übergeben.

Sinn ist im wesentlichen eine Sicherheitsabfrage, nur eine bestimmte Klasse darf ein Objekt einer bestimmten anderen erzeugen.

Hi,

dann verschieb doch deine Methode in die Klasse, die diese aufrufen darf?

Gruß,

Markus

Die Funktion get_parent_class() ist dein Freund.

@kills

das geht nicht, man könnte sagen 1:n. Sagen wir z.B. ich habe eine Klasse "Template", diese darf nur von Kindklassen der Klasse "XY" aufgerufen werden, andernfalls soll eine Exception geschmissen werden.

Oder ich habe eine Methode der Klasse A, die speziell als Schnittstelle zur Klasse B dient und daher auch nur von B aufgerufen werden darf.

@FMG

geht leider auch nicht, ich will keine vererbung, sondern einen aufruf zurückverfolgen.

versuche mal:

debug_backtrace()

PHP.net-Link

PHP: debug_backtrace - Manual

Beispielcode:


<?php
class test1
{
function execTest2()
{
echo "test1";
$mytest2 = new test2();
$mytest2->trace();
}
}

class test2
{
function trace()
{
echo "test";
var_dump(debug_backtrace());
}
}

$mytest1 = new test1();
$mytest1->execTest2();

?>
[/PHP]

Warnung:

Ich warne vor möglichen Performanceeinbußen bei komplexen Projekten.

na ok,

wenn da mit relevanten Performanceeinbußen zu rechnen ist, dann lohnt sich das nicht.

Das Projekt um das es derzeit geht, ist doch im im Unfang und in der tiefe der Objektaufrufe doch zu groß.

Trotzdem danke :)

Wie du selbst sagst, $this Operator übergeben (mit Referenz), bzw nur den Klassenamen

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.