Ich erstelle ein Paket für Laravel und ich habe das Benachrichtigungspaket (https://github.com/edvinaskrucas/notification) als eine Abhängigkeit für mein Paket definiert.Wie kann ich bei der Erstellung eines Laravel-Pakets den Dienstanbieter und Alias von Abhängigkeitspaketen registrieren?
In /workbench/vendor/package/src/composer.json ich habe:
"require": {
"php": ">=5.3.0",
"illuminate/support": "4.1.*",
"edvinaskrucas/notification": "2.*"
}
ich dann den Service-Provider Registrierung in Service-Providers Register Methode meines Paket (nicht einmal sicher, ob dies die richtigen Weg, um dies zu tun) und der Alias mit App :: Alias.
So in /workbench/vendor/package/src/Vendor/Package/PackageServiceProvider.php ich habe:
public function register()
{
App::register('Krucas\Notification\NotificationServiceProvider');
App::alias('Notification','Krucas\Notification\Facades\Notification');
}
Aber ich bin immer noch der Klasse „Benachrichtigung" nicht gefunden“Ausnahme erhalten, wenn sie versuchen, Verwenden Sie Notification :: info() in einem Controller oder Notification :: showAll() in einer Ansicht.
Wie registriere ich Dienstanbieter ordnungsgemäß für die Abhängigkeiten meines Pakets?
Nur fyi, es ist nicht notwendig, eine Instanz der AliasLoader-Klasse zu erhalten, da der Container eine Methode zum Hinzufügen von Aliasen hat. '$ this-> app-> alias()' funktioniert genauso :) https://github.com/laravel/framework/blob/5.2/src/Illuminate/Container/Container.php#L400 – samrap
@samrap Die '$ this-> app-> alias()' funktionierte nicht für mich, aber der '$ loader-> alias()' tat. Das ist seltsam – boyd
'$ this-> app-> alias()' Methode ist irreführend, es braucht nicht eine typische Fassade Alias-Definition als Argument, sondern eher das Ergebnis der Fassaden 'getFacadeAccessor()'. Oder so scheint es mir. – Shadetheartist