Heim > php教程 > PHP开发 > Hauptteil

3 Möglichkeiten, Ihre eigene Klassenbibliothek in Laravel zu nutzen

高洛峰
Freigeben: 2016-12-27 11:34:52
Original
1146 Leute haben es durchsucht

Obwohl Composer es uns ermöglicht, viele vorhandene Bibliotheken wiederzuverwenden (z. B. die in packagist.org), verwenden wir möglicherweise immer noch einige Pakete oder Bibliotheken, die nicht mit Composer kompatibel sind. Darüber hinaus erstellen wir in einem bestimmten Projekt möglicherweise auch eine bestimmte Klassenbibliothek und beabsichtigen möglicherweise nicht, diese in ein Composer-Paket umzuwandeln. Derzeit können wir unsere eigene einzigartige Klassenbibliothek auf folgende Weise verwenden.

Klassen hinzufügen, die direkt instanziiert werden können

Einige Klassen, die direkt im Projekt verwendet werden müssen, können im Folgenden zu Laravel hinzugefügt werden Möglichkeiten

1. Erstellen Sie die Klassenbibliotheksdatei app/libraries/class/myClass.php
Schreiben Sie den Dateiinhalt

<span style="font-size: 16px;"><?php<br/>class Message {<br/>    public static function display() {<br/>    }<br/>}<br/>?><br/></span>
Nach dem Login kopieren

Fügen Sie den Klassenimportpfad in app/start/globals.php hinzu

<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/>    app_path().&#39;/commands&#39;,<br/>    app_path().&#39;/controllers&#39;,<br/>    app_path().&#39;/models&#39;,<br/>    app_path().&#39;/database/seeds&#39;,<br/>    app_path().&#39;/libaries/class&#39;, // 在这里增加<br/>));<br/>?><br/></span>
Nach dem Login kopieren

Fügen Sie das Autoload-Verzeichnis in Composer.json hinzu

<span style="font-size: 16px;">"autoload": {<br/>    "classmap": [<br/>        "app/commands",<br/>        "app/controllers",<br/>        "app/models",<br/>        "app/database/migrations",<br/>        "app/database/seeds",<br/>        "app/tests/TestCase.php",<br/>        "app/libraries/class"   //在这里增加<br/>    ]<br/>},<br/></span>
Nach dem Login kopieren

1. Führen Sie „composer dump-autoload“ aus, um die Importzuordnung zu erstellen
2. Verwenden Sie die von Ihnen importierte Klasse, um Message::display() direkt aufzurufen.

Diese Methode auch In Bezug auf die Warteschlangenklassenmethode wissen viele Menschen nicht, wo die Warteschlangenverarbeitungsklasse in Laravel platziert werden soll. Befolgen Sie tatsächlich die obige Methode, um ein Warteschlangenverzeichnis im App-Verzeichnis zu erstellen, und lassen Sie es dann direkt instanziieren 🎜>

Funktionen hinzufügen, die direkt aufgerufen werden können

Manche Leute verwenden gerne v() anstelle von var_dump(), und das ist sehr einfach Tun Sie dies in Laravel

1. Erstellen Sie eine Funktionsdatei app/libraries/function/helper.phpSchreiben Sie den Dateiinhalt

<span style="font-size: 16px;"><?php <br/>function v($msg){<br/>    var_dump($msg);<br/>}<br/>?><br/></span>
Nach dem Login kopieren

Fügen Sie die Datei zu Composer hinzu, importieren Sie automatisch

<span style="font-size: 16px;">"autoload": {<br/>   "classmap": [<br/>       ...<br/>   ],<br/>   "files": [<br/>       "app/libraries/function/helper.php"<br/>   ],<br/>},<br/></span>
Nach dem Login kopieren

in die Liste oder zeigen Sie die erforderliche Datei im Projekt an. Öffnen Sie app/start/global.php und fügen Sie am Ende Folgendes hinzu:

<span style="font-size: 16px;">require app_path().&#39;/libraries/function/helper.php&#39;;<br/></span>
Nach dem Login kopieren

Ich persönlich halte beide Methoden für in Ordnung. Wenn Sie die Ladezeit dieser Datei steuern möchten, Sie können sogar den folgenden Inhalt zur Datei filter.php hinzufügen

<span style="font-size: 16px;">App::before( function( $request ) {<br/>    require( "{$GLOBALS[&#39;app&#39;][&#39;path.base&#39;]}/app/libraries/function/helper.php" );<br/>});<br/></span>
Nach dem Login kopieren
Verwenden Sie die Funktion v('hello world') direkt im Projekt;

Hinzufügen eine etwas komplexere Klassenbibliothek

Manchmal ist eine Klassenbibliothek mehr als nur eine Datei, daher eignet sich die folgende Methode besser für Klassenbibliotheken mit mehreren Dateien und mehreren Strukturen.

Erstellen Sie eine psr0- oder psr4-Standardverzeichnisstruktur.

libraries
    Myapp
        Search (note directory is capitalized)
            Search.php
            SearchFacade.php
            SearchServiceProvider.php
        AnotherLib
Nach dem Login kopieren
Der Namespace der Search-Klasse in Myapp/Search/Search.php ist MyappSearch.

Autoload im Composer ändern

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/libraries",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
    ,
    "psr-0": {
         "Myapp": "app/libraries"
    }
},
Nach dem Login kopieren
Verwenden Sie die neue MyappSearchSearch() im Projekt, um eine bestimmte Klasse zu instanziieren

Zusammenfassung

Obwohl Laravel nicht erzwingt Welche Methode ist die beste, aber es gibt bestimmte Standards, die die Projektstruktur klar machen und eine Menge Kommunikationskosten sparen können, wenn mehrere Personen an der Entwicklung zusammenarbeiten.

Weitere verwandte Artikel über 3 Möglichkeiten zur Nutzung Ihrer eigenen Klassenbibliothek in Laravel finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!