Maison > cadre php > Laravel > le corps du texte

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

藏色散人
Libérer: 2020-04-28 15:03:50
avant
2113 Les gens l'ont consulté

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
Copier après la connexion

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');
}
Copier après la connexion

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;
}
Copier après la connexion

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';
}
Copier après la connexion

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;;
    }
}
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:xueyuanjun.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal