


Die folgende Tutorial-Kolumne von Laravel stellt Ihnen die Implementierungsmethode zum Konfigurieren und Ausführen des Flarum-Forumsystems in der Mac-Entwicklungsumgebung Laravel Valet vor an Freunde in Not!
Laravel Valet ist eine minimalistische Entwicklungsumgebung für Mac OS X. Die Konfiguration von Valet unterscheidet sich jedoch etwas von herkömmlichen HTTP-Servern (Apache, Nginx usw.). Um URLs in Konfigurationsdateien neu zu schreiben, definiert Valet die URL-Verarbeitung modular in PHP-Klassen. Da die Standardverzeichnisstrukturen von Flarum und Laravel unterschiedlich sind, müssen wir die Zugriffskonfiguration in Valet definieren.
Im Verzeichnis ~/.valet/Drivers gibt es eine Standardkonfigurationsdatei SampleValetDriver.php, die drei Methoden enthält: Serves, isStaticFile und frontControllerPath. Wir müssen jetzt unsere eigene Konfigurationsdatei FlarumValetDriver.php konfigurieren und diesen drei Methoden folgen, um unsere eigene Treibererweiterung zu schreiben:
cp SampleValetDriver.php FlarumValetDriver.php
Öffnen Sie FlarumValetDriver.php und schreiben Sie zunächst die Serves-Methode neu, in der wir Valet angeben müssen Ob das entsprechende Flarum-Anwendungsverzeichnis unter dem entsprechenden Web-Root-Verzeichnis (mein hier ist Flarum, wenn es anders ist, müssen Sie es in Ihr eigenes Flarum-Anwendungsverzeichnis ändern) vorhanden ist, ähnelt in gewisser Weise der Definition des Root-Verzeichnisses in Nginx:
public function serves($sitePath, $siteName, $uri){ return is_dir($sitePath.'/vendor/flarum') && file_exists($sitePath.'/flarum'); }
Als nächstes bestimmt die isStaticFile-Methode, ob die angegebene URL auf eine statische Datei verweist und ob die statische Datei existiert. Dies ähnelt der Definition des statischen Dateizugriffs in nginx:
public function isStaticFile($sitePath, $siteName, $uri){ if ($this->isActualFile($staticFilePath = $sitePath.$uri)) { return $staticFilePath; } return false; }
Zum Schluss umschreiben die frontControllerPath-Methode, die mod_rewrite in Apache und try_uri in Nginx ähnelt, hier können wir den Anforderungszugriffspfad umschreiben:
public function frontControllerPath($sitePath, $siteName, $uri) { if (strpos($uri,'/admin') === 0) { return $sitePath.'/admin.php'; } if (strpos($uri,'/api') === 0) { return $sitePath.'/api.php'; } return $sitePath.'/index.php'; }
Das Endergebnis ist wie folgt, wir speichern es unter ~/.valet/Drivers:
<?php class FlarumValetDriver extends ValetDriver { /** * Determine if the driver serves the request. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return bool */ public function serves($sitePath, $siteName, $uri) { return is_dir($sitePath.'/vendor/flarum') && file_exists($sitePath.'/flarum'); } /** * Determine if the incoming request is for a static file. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return string|false */ public function isStaticFile($sitePath, $siteName, $uri) { if ($this->isActualFile($staticFilePath = $sitePath.$uri)) { return $staticFilePath; } return false; } /** * Get the fully resolved path to the application's front controller. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return string */ public function frontControllerPath($sitePath, $siteName, $uri) { if (strpos($uri,'/admin') === 0) { return $sitePath.'/admin.php'; } if (strpos($uri,'/api') === 0) { return $sitePath.'/api.php'; } return $sitePath.'/index.php'; } }
Gefällt mir so Du kannst jetzt ganz normal auf alle Falrum-Routen zugreifen. Wenn ein Zugriffsfehler gemeldet wird:
Call to undefined method FlarumValetDriver::isActualFile() in /Users/sunqiang/.valet/Drivers/FlarumValetDriver.php on line 29
Dies liegt daran, dass Valet nicht auf die neueste Version aktualisiert wurde. Führen Sie einfach den folgenden Befehl aus, um Valet zu aktualisieren:
composer global update
Originaladresse: https ://xueyuanjun.com/ post/5679
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Konfiguration und Ausführung des Flarum-Forumsystems in der Mac-Entwicklungsumgebung Laravel Valet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

MigrationssinlaravelManagedatabaseSchema, während der MigrationsActasbluePrintsfordatabasStructure, Erlaubnis der Migrations- und Delettion -Faktoren.2) Models

SoftDeletesinlaravelarebetterformaintaininghistoricalDataandRecoverability, whilephysicalDeletesArePreferableFefordataminimization und -Privacy.) SoftDeletesusethesoftDeletESTRITRITRITRITT, ZUGLEIGEN SIE INGENKORDRESTORATIONANDAUDAUDTRAILS, Butmayincreagedatabasize

SoftDeletesinlaravelAreAfaturethatAllowSyoutomarkrecordsAsDeletedwitHoutReMovingThemFromThedatabase.Toimplements: 1) addthesoftDeletESTRAITTOYORMODELNCLUDETHEDETETED_ATCOLUMN

LaravelmigrationssareefectiveduetotheiversionControlandreversibilität, streamliningdatabasemanagementinwebdevelopment.1) sie leckt die MigrationsstrackexeciNinalogtable, die Verhinderung von Duplikatern zu verhindern

LaravelMigrationsArBestwhenFeningThesePractices: 1) Useclear, Descriptivenamingformigrations, wie'AddemailTousStable'.2) SESUREMIRMIRTRATIONSAREVIBLIBLEWITHTA'DOWN'Method.3) Betrachten Sie die Broaderimpactondataintegrition -Funktionalität.4) OptimizePerance

Einseitige Anwendungen (SPAs) können mit Laravel und Vue.js. 1) Definieren Sie die API -Routing und -Controller in Laravel, um die Datenlogik zu verarbeiten. 2) Erstellen Sie ein komponentiertes Front-End in Vue.js, um die Benutzeroberfläche und die Dateninteraktion zu realisieren. 3) Konfigurieren Sie CORs und verwenden Sie Axios für die Dateninteraktion. 4) Verwenden Sie Vuerouter, um das Routing -Management zu implementieren und die Benutzererfahrung zu verbessern.

Die Schritte zum Erstellen einer benutzerdefinierten Helferfunktion in Laravel sind: 1.. Fügen Sie eine automatische Ladekonfiguration in Composer.json hinzu; 2. Ausführen von CompoSerdump-autoload, um den automatischen Loader zu aktualisieren. 3. Erstellen und definieren Sie Funktionen im App/Helpers -Verzeichnis. Diese Funktionen können den Code vereinfachen, die Lesbarkeit und Wartbarkeit verbessern, aber auf die Benennung von Konflikten und Testbarkeit achten.

Bei der Bearbeitung von Datenbanktransaktionen in Laravel sollten Sie die DB :: Transaktionsmethode verwenden und auf die folgenden Punkte achten: 1. LockforUpdate () verwenden, um Datensätze zu sperren; 2. Verwenden Sie den Try-Catch-Block, um Ausnahmen zu verarbeiten und bei Bedarf Transaktionen zu rollen oder zu begehen. 3.. Berücksichtigen Sie die Leistung der Transaktion und Verkürzung der Ausführungszeit; 4. Vermeiden Sie Deadlocks, Sie können den Parameter Versuch verwenden, um die Transaktion wiederzuholen. Diese Zusammenfassung fasst vollständig zusammen, wie in Laravel anmutig mit Transaktionen umgehen und die Kernpunkte und Best Practices im Artikel verfeinert.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.
