Funktionsergebnisse in Variablen schreiben die überall Ausgelsen werden können

  • Guten Tag,

    meine Frage lautet:

    Ist es möglich gewisse Funktionen, die immer mal wieder in verschiedenen PHP Dateien aufgerufen werden, in eine PHP Datei auszulagern die von Wordpress vorab aufgerufen werden?

    In unserem Projekt ist es bspw. so das wir sehr oft abfragen ob ein Benutzer eine gewisse Rolle hat z. B. Administrator. Somit steht in unseren php Dateien ganz oft

    Code
    user_has_role(get_current_user_id(), 'Administrator')

    Nun dachte ich es wäre doch besser diesen Rückgabewert in einer Variable zu speichern um nicht immer wieder einen Funktionsaufruf (der Zeit und Ressourcen kostet) zu erzeugen.

    Dann würde irgendwo so etwas stehen wie z. B.

    Code
    $benuzter_rolle_admin = user_has_role(get_current_user_id(), 'Administrator');

    Diese Variable wäre nur dann sinnvoll einsetzbar, wenn man auf diese in allen PHP Dateien zugreifen könnte. Ist so etwas möglich?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Das könntest Du als globale Variable speichern.

    Code
    $GLOBALS['benuzter_rolle_admin'] = user_has_role(get_current_user_id(), 'Administrator');

    Auslesen dann in einer Funktion per:

    Code
    global $benuzter_rolle_admin;


    und dann weiterverwenden

    Moderner wäre eine helper- oder eine trait-Klasse, wenn Du mit PHP-Klassen arbeitest.

  • Moderner wäre eine helper- oder eine trait-Klasse, wenn Du mit PHP-Klassen arbeitest.

    Wenn das in einer Klasse realisiert wäre, wäre es dann nicht wieder der selbe Aufwand?
    Ich erstelle eine Klasse, diese müsste ich dann in sämtlichen PHP Dateien in denen die Funktion aufgerufen wird instanzieren damit hätte man doch nichts gewonnen oder?

    Mit PHP habe ich nicht so viele Erfahrungen ansonsten Arbeite ich mich Java, C und C++. Dort verwende ich keine Globalen Variablen. In dem Fall oben würde man ein Objekt erstellen und dessen Referenz weitergeben um weiterzuarbeiten doch wie geht das in PHP und Wordpress?

  • Du könntest Deine Variable in der [FONT=Courier New]after_setup_theme[/FONT] Action oder ggf. auch etwas später in der [FONT=Courier New]template_redirect[/FONT] Action bestücken, dann wäre sie vermutlich überall für Deine Zwecke verfügbar.

    Siehe auch Actions Run During a Typical Request in der WordPress Dokumentation.

    Tipp am Rande: Bei sowas aber immer auch an die Nutzung bzw. Nichtnutzung von Caching denken...

  • Du könntest Deine Variable in der [FONT=Courier New]after_setup_theme[/FONT] Action oder ggf. auch etwas später in der [FONT=Courier New]template_redirect[/FONT] Action bestücken, dann wäre sie vermutlich überall für Deine Zwecke verfügbar.

    Danke das schaue ich mir mal an :-)

    Tipp am Rande: Bei sowas aber immer auch an die Nutzung bzw. Nichtnutzung von Caching denken...


    Ans Chaching habe ich auch gar nicht mehr gedacht, mal schauen ob ich es irgendwie hin bekomme :)

    Wenn nicht melde ich mir hier nochmal ;-)
    Danke für eure Hilfe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!