suchen
HeimPHP-FrameworkLaravelAusführliche Erklärung zur Konfiguration und Ausführung des Flarum-Forumsystems in der Mac-Entwicklungsumgebung Laravel Valet

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!

Ausführliche Erklärung zur Konfiguration und Ausführung des Flarum-Forumsystems in der Mac-Entwicklungsumgebung Laravel Valet

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.&#39;/vendor/flarum&#39;) && file_exists($sitePath.&#39;/flarum&#39;);
    }

    /**
     * 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&#39;s front controller.
     *
     * @param  string  $sitePath
     * @param  string  $siteName
     * @param  string  $uri
     *
     * @return string
     */
    public function frontControllerPath($sitePath, $siteName, $uri)
    {
        if (strpos($uri,&#39;/admin&#39;) === 0) {
            return $sitePath.&#39;/admin.php&#39;;
        }
        if (strpos($uri,&#39;/api&#39;) === 0) {
            return $sitePath.&#39;/api.php&#39;;
        }

        return $sitePath.&#39;/index.php&#39;;
    }
}

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!

Stellungnahme
Dieser Artikel ist reproduziert unter:xueyuanjun. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Laravel: Was ist der Unterschied zwischen Migration und Modell?Laravel: Was ist der Unterschied zwischen Migration und Modell?May 16, 2025 am 12:15 AM

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

Laravel: Ist es besser, weiche Deletten oder physische Löschungen zu verwenden?Laravel: Ist es besser, weiche Deletten oder physische Löschungen zu verwenden?May 16, 2025 am 12:15 AM

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

Laravel Soft Deletes: Ein umfassender Leitfaden zur ImplementierungLaravel Soft Deletes: Ein umfassender Leitfaden zur ImplementierungMay 16, 2025 am 12:11 AM

SoftDeletesinlaravelAreAfaturethatAllowSyoutomarkrecordsAsDeletedwitHoutReMovingThemFromThedatabase.Toimplements: 1) addthesoftDeletESTRAITTOYORMODELNCLUDETHEDETETED_ATCOLUMN

Verständnis von Laravel -Migrationen: Datenbankschema -Steuerung einfach gemachtVerständnis von Laravel -Migrationen: Datenbankschema -Steuerung einfach gemachtMay 16, 2025 am 12:09 AM

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

Laravel -Migrationen: Best Practices für die DatenbankentwicklungLaravel -Migrationen: Best Practices für die DatenbankentwicklungMay 16, 2025 am 12:01 AM

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

Laravel Vue.js Single Page Application (SPA) TutorialLaravel Vue.js Single Page Application (SPA) TutorialMay 15, 2025 pm 09:54 PM

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.

Wie erstelle ich in Laravel benutzerdefinierte Helferfunktionen?Wie erstelle ich in Laravel benutzerdefinierte Helferfunktionen?May 15, 2025 pm 09:51 PM

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.

Wie behandle ich Datenbanktransaktionen in Laravel?Wie behandle ich Datenbanktransaktionen in Laravel?May 15, 2025 pm 09:48 PM

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.

See all articles

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

Video Face Swap

Video Face Swap

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

Heißer Artikel

Nordhold: Fusionssystem, erklärt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists

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

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows

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

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.