Heim php教程 PHP开发 3 Möglichkeiten, Ihre eigene Klassenbibliothek in Laravel zu nutzen

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

Dec 27, 2016 am 11:34 AM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)