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>
Fügen Sie den Klassenimportpfad in app/start/globals.php hinzu
<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/> app_path().'/commands',<br/> app_path().'/controllers',<br/> app_path().'/models',<br/> app_path().'/database/seeds',<br/> app_path().'/libaries/class', // 在这里增加<br/>));<br/>?><br/></span>
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>
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>
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>
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().'/libraries/function/helper.php';<br/></span>
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['app']['path.base']}/app/libraries/function/helper.php" );<br/>});<br/></span>
libraries Myapp Search (note directory is capitalized) Search.php SearchFacade.php SearchServiceProvider.php AnotherLib
"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" } },