recherche
Maisoncadre phpLaravelExplication détaillée de la façon de configurer et d'exécuter le système de forum Flarum dans l'environnement de développement Mac Laravel Valet

La colonne tutorielle suivante de laravel vous présentera la méthode d'implémentation de configuration et d'exécution du système de forum Flarum dans l'environnement de développement Mac Laravel Valet. J'espère que cela vous sera utile. aux amis dans le besoin !

Explication détaillée de la façon de configurer et d'exécuter le système de forum Flarum dans l'environnement de développement Mac Laravel Valet

Laravel Valet est un environnement de développement minimaliste fourni pour Mac OS X. Cependant, la configuration de Valet est quelque peu différente des serveurs HTTP traditionnels (Apache, Nginx, etc.). Pour réécrire les URL dans les fichiers de configuration, Valet définit la gestion des URL de manière modulaire dans les classes PHP. Les structures de répertoires par défaut de Flarum et de Laravel étant différentes, nous devons définir sa configuration d'accès dans Valet.

Il existe un fichier de configuration par défaut SampleValetDriver.php dans le répertoire ~/.valet/Drivers, qui contient trois méthodes : serve, isStaticFile et frontControllerPath. Nous devons maintenant configurer notre propre fichier de configuration FlarumValetDriver.php, et suivre ces trois méthodes pour écrire notre propre extension de pilote :

cp SampleValetDriver.php FlarumValetDriver.php

Ouvrez FlarumValetDriver.php, réécrivez d'abord la méthode serve, dans laquelle nous devons spécifier Valet Que le répertoire d'application Flarum correspondant sous le répertoire racine Web correspondant (le mien ici est Flarum, s'il est différent, vous devez le remplacer par votre propre répertoire d'application Flarum) existe, cela est quelque peu similaire à la définition de racine dans Nginx :

public function serves($sitePath, $siteName, $uri){
    return is_dir($sitePath.'/vendor/flarum')
        && file_exists($sitePath.'/flarum');
}

Ensuite, dans La méthode isStaticFile détermine si l'URL donnée pointe vers un fichier statique et que le fichier statique existe. Ceci est similaire à la façon dont nous définissons l'accès aux fichiers statiques dans nginx :

public function isStaticFile($sitePath, $siteName, $uri){
    if ($this->isActualFile($staticFilePath = $sitePath.$uri)) {
        return $staticFilePath;
    }

    return false;
}

Enfin, réécrivez. la méthode frontControllerPath, qui est similaire à mod_rewrite dans Apache Et try_uri dans Nginx, on peut ici réécrire le chemin d'accès à la requête :

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';
}

Le résultat final est le suivant, on le sauvegarde sous ~/.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;;
    }
}

comme ça Vous pouvez désormais accéder normalement à toutes les routes de Falrum. Si une erreur d'accès est signalée :

Call to undefined method FlarumValetDriver::isActualFile() in /Users/sunqiang/.valet/Drivers/FlarumValetDriver.php on line 29

C'est parce que Valet n'a pas été mis à niveau vers la dernière version. Exécutez simplement la commande suivante pour mettre à niveau Valet :

composer global update

Adresse d'origine : https. ://xueyuanjun.com/post/5679

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
L'illusion de l'inclusion: aborder l'isolement et la solitude dans le travail à distanceL'illusion de l'inclusion: aborder l'isolement et la solitude dans le travail à distanceApr 25, 2025 am 12:28 AM

TOCOMBATISALATION ANDONIELLESSIONSInRemotework, CompaniesshouldImplementRegular, significatif, fournit des émeutes et de l'usetéchnologie.

Laravel pour le développement complet: un guide completLaravel pour le développement complet: un guide completApr 25, 2025 am 12:27 AM

LaraveispopularForfull-stackdevelopmentbecauseitoffersaSEAmlessBlendofbackendPowerAndfrontendflexibility.1) itsbackendCapabilities, like eloquentorm, simplifydatabaseinteracts.2) thebladetemplatingngineallowsforclean, dynamichtmltemplate.3) Laravelmix

CONSTENCE DE CONSÉRENCE VIDÉO: Choisir la bonne plate-forme pour les réunions distantesCONSTENCE DE CONSÉRENCE VIDÉO: Choisir la bonne plate-forme pour les réunions distantesApr 25, 2025 am 12:26 AM

Les facteurs clés du choix d'une plate-forme de conférence vidéo incluent l'interface utilisateur, la sécurité et les fonctionnalités. 1) L'interface utilisateur doit être intuitive, comme le zoom. 2) La sécurité doit être prêtée attention et Microsoft Teams fournit un cryptage de bout en bout. 3) Les fonctions doivent faire correspondre les exigences, GoogleMeet convient aux réunions courtes et Ciscowebex fournit des outils de collaboration avancés.

Quelles versions de base de données sont compatibles avec le dernier Laravel?Quelles versions de base de données sont compatibles avec le dernier Laravel?Apr 25, 2025 am 12:25 AM

La dernière version de Laravel10 est compatible avec MySQL 5.7 et plus, PostgreSQL 9.6 et plus, SQLite 3.8.8 et plus, SQLServer 2017 et supérieur. Ces versions sont choisies car elles prennent en charge les fonctionnalités ORM de Laravel, telles que le type de données JSON de MySQL5.7, qui améliore l'efficacité de la requête et du stockage.

Les avantages de l'utilisation de Laravel comme cadre completLes avantages de l'utilisation de Laravel comme cadre completApr 25, 2025 am 12:24 AM

LaravelisanExcellentChoiceForfull-stackDevelopmentDuetOtsRobustFeaturesAndEasefuse.1)

Quelle est la dernière version de Laravel?Quelle est la dernière version de Laravel?Apr 24, 2025 pm 05:17 PM

Laravel10, libéré du 7.2023, iSthelateStversion.itFeatures: 1) Amélioration de la main-d'œuvre avec des annuels de réapparition de FEATheExceptionHandler, 2) Amélioration de la pointe de la pointe de la lignée et3) anewLaravel \ promptSpackageForActiveComand-linepraps.

Comment la nouvelle version de Laravel simplifie-t-elle le développement?Comment la nouvelle version de Laravel simplifie-t-elle le développement?Apr 24, 2025 pm 05:01 PM

ThelatestLaravelversionEnHancesDevelopment with: 1) simplifiedRoutingusingImpLiceModelbinding, 2) amélioré les capacités de fonctionnalité avec des eMétrosses et3) et 3) ont amélioré le cocodication.

Où puis-je trouver les notes de publication pour la dernière version Laravel?Où puis-je trouver les notes de publication pour la dernière version Laravel?Apr 24, 2025 pm 04:53 PM

Vous pouvez trouver les notes de version pour la dernière version de Laravel sur laravel.com/docs. 1) Les notes de publication fournissent des informations détaillées sur les nouvelles fonctionnalités, les corrections de bogues et les améliorations. 2) Ils contiennent des exemples et des explications pour aider à comprendre l'application de nouvelles fonctionnalités. 3) Faites attention à la complexité potentielle et aux problèmes de compatibilité descendants des nouvelles fonctionnalités. 4) Un examen régulier des notes de publication peut le maintenir à jour et inspirer l'innovation.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code