2016-05-16 7 views
0

Initialisierung habe ich einen API-Endpunkte Controller, die wie folgt aussieht:Laravel - Automatische Benötigte Schnittstellen Injizieren Wenn Sie manuell eine Klasse

class myApiController extends BaseApiController{ 

    public function __construct(UsersInterface $users, JobsInterface $jobs){ 

     // Do bootstrap tasks 

    } 

} 

die oben nur gerade verwendet wird Endpunkt für meine APIs zur Verfügung zu stellen. Sie sind in der Datei routes.php in der folgenden Weise referenziert.

Route::get('api/get', 
    ['as' => 'api.get', 'uses' => '[email protected]']); 
Route::post('api/post', 
    ['as' => 'api.post', 'uses' => '[email protected]']); 

Laravel initialisiert automatisch die myApiController Klasse oben und löst alle Dependency Injection in der __construct() Funktion.

Es gibt ein paar Funktionen innerhalb myApiController, die nicht an Endpunkte gebunden sind und die ich in einem anderen Skript verwenden möchte. Als ich die Klasse in diesem Skript initialisieren mit:

$MyApiController = new myApiController() 

bekomme ich einen Fehler, der besagt, dass der Konstruktor-Schnittstelle Referenzen injiziert werden erwartet.

Gibt es trotzdem eine automatische Injektion dieser Schnittstellen bei der Klasseninitialisierung?

Antwort

0

Automatische Auflösung kann Ihnen helfen.

class FooBar { 

    public function __construct(Baz $baz) 
    { 
     $this->baz = $baz; 
    } 

} 

$fooBar = App::make('FooBar'); 

Bitte sicher Namensraum korrekt sind. (Für Laravel 4, die Sie nicht benötigen Namespace)

read more

Verwandte Themen