Heim  >  Artikel  >  php教程  >  Fassaden aus Laravel-Fachwerk

Fassaden aus Laravel-Fachwerk

高洛峰
高洛峰Original
2016-11-30 15:50:091426Durchsuche

Facades bieten eine „statische“ Schnittstelle zu Klassen, die im Servicecontainer der Anwendung verfügbar sind.

Laravel verfügt über viele Fassaden, und Sie verwenden sie möglicherweise sogar, ohne es zu wissen!

statische Schnittstelle (Fassaden) von xpower

Voraussetzung 1: Wir haben eine Klasse, die an den Service-Container (xpower) gebunden wurde

Voraussetzung 2: Wir haben diese Klasse im Dienstanbieter registriert (Singleton-Methode unter Regisrer im Service-Container)

5. Als nächstes erstellen Sie eine xpower-Fassade, alle erben die Fassadenbasis Klasse. Die getFacadeAccessor-Methode muss implementiert sein. Es wird eine Zeichenfolge zurückgegeben, bei der es sich tatsächlich um den Namen des registrierten Bindungs-Singletons (Singleton-Methode) des Dienstanbieters handelt. Sie können diesen Namen beiläufig schreiben, hier ist er xpower

<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\Facade; 

class XP extends Facade { 
  protected static function getFacadeAccessor() { 
    return &#39;xpower&#39;; 
  } 
}

6 Dann müssen Sie den Fassadenkategorienamen in der Konfigurationsdatei config/app.php registrieren:

&#39;aliases&#39; => [ ...//其他门面类别名映射 &#39;XP&#39; => App\Facades\XP::class, ],

Zu diesem Zeitpunkt können wir XP::activate direkt verwenden, um xpower-Superkräfte zu aktivieren

die Einführung von AppFacadesXP nutzen. Sonst kann es nicht gefunden werden.

Analyse:

1. Die Zeichenfolge xpower wurde ebenfalls gebunden und im Container registriert und gibt dann die Xpower-Dienstinstanz zurück

3. ::activate ruft tatsächlich die __callstatic-Methode in der Basisklassenfassade auf und wird dann auf diese Weise in ->show() konvertiert.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Git allgemeine BefehleNächster Artikel:Git allgemeine Befehle