2016-07-15 3 views
0

Gibt es eine Möglichkeit in Laravel (5.2) statische und/oder nicht statische Funktion in einem benutzerdefinierten Objekt aufzurufen, ohne das verweisende Objekt in allen Klassen zu instanziieren, die es verwendet?Laravel - Wie statische Funktion aufgerufen wird, ohne Objekt instanziieren

Beispiel: Ich habe Klasse App\Helpers\Utilities.php mit öffentlicher Funktion doBeforeTask()

ich diese Methode in zuzuteilen Klassen in meinem Projekt bin mit, und es wäre schön, wenn ich nur mein Utilities::doBeforeTask() oder Utilities->doBeforeTask(), ohne eine Instanz nennen könnte Dienstprogramme $obj = new Utilities(); Objekt

+1

Wäre es nicht zu 'public static function doBeforeTask Umbenennung()' erreichen genau was du brauchst? – apokryfos

Antwort

2

Definieren Sie Ihre Methode als statische Methode. und nennen Sie es überall mit folgenden Code:

Utilities::doBeforeTask(); 

-Code-Struktur der Datei App \ Helpers \ Utilities.php

namespace App\Library; 

class Utilities { 

//added new user 
public static function doBeforeTask() { 
    // ... you business logic. 
} 
} 
0

definieren statische Funktion

class Foo 
{ 

    public static function staticFunction() { 
     return 'Hello World'; 
    } 
} 

jetzt rufen Foo :: staticFunction()

+0

Benötigt es jedoch keine Art von Autoload oder Implementierung in composer.json wie Dienstanbieter oder Alias? – boomdrak

+1

Wenn Sie es überall verwenden möchten, können Sie es entweder im Autoload anfordern oder als Dep in Composer hinzufügen –