Ich versuche zu verstehen, wie Services Container in Laravel funktioniert. Also weiß ich, dass Dienste verwendet werden, um etwas zu haben, das Sie von Laravel einrichten möchten, oder?So lösen Sie den Service Provider im Controller?
Ich versuche, ein einfaches Beispiel mithilfe von LDAP php integrierten Funktionen zu machen. Ich habe dies in meinem AppServiceProvider.php
:
public function register()
{
$this->app->bind('ldap', function() {
$conn = ldap_connect(env('LDAP_HOST'));
ldap_bind($conn, env('LDAP_BIND'), env('LDAP_PWD'));
return $conn;
});
}
Da ist in meinem Controller ich versuche zu $ldap = resolve('ldap');
aber es funktioniert nicht, sagt es resolve
existiert nicht. Ich habe es bereits mit $this->app->make
versucht. Wie bekomme ich meine LDAP-Verbindung zurück?
Ich denke, Sie möchten '$ this-> app-> make' verwenden und müssen ldap zu Ihrer Dienstanbieter-Konfigurationsdatei' config/app.php' hinzufügen. https://laravel.com/docs/5.3/providers – bassxzero
aber ist dieser Code-Block nicht schon registriert den Service-Provider? AppServicePRovider wird standardmäßig bereits geladen, oder? –
Diese Methode dient zum Registrieren der Bindung mit der App-Instanz. Voraussetzung ist, dass Sie bereits eine Instanz des Service-Providers haben. Es ist schwer zu erklären, ohne den Code zu betrachten. Kurz gesagt, wenn Laravel während des Bootstrappings die Diensteanbieter für Sie erstellt, müssen Sie ihm jedoch mitteilen, welche erstellt werden sollen. – bassxzero