ホームページ > PHPフレームワーク > Laravel > Mac 開発環境 Laravel Valet で Flarum フォーラム システムを構成および実行する方法の詳細な説明

Mac 開発環境 Laravel Valet で Flarum フォーラム システムを構成および実行する方法の詳細な説明

藏色散人
リリース: 2020-04-28 15:03:50
転載
2137 人が閲覧しました

次のチュートリアルコラムでは、Mac 開発環境 Laravel Valet で Flarum フォーラム システムを構成して実行する実装方法を紹介します。

Laravel Valet は、Mac OS X 向けに提供される最小限の開発環境です。ただし、Valet の構成は、従来の HTTP サーバー (Apache、Nginx など) とは若干異なります。構成ファイル内の URL を書き換えるために、Valet は PHP クラスでモジュール式の URL 処理を定義します。 FlarumとLaravelではデフォルトのディレクトリ構造が異なるため、Valetでアクセス設定を定義する必要があります。

Mac 開発環境 Laravel Valet で Flarum フォーラム システムを構成および実行する方法の詳細な説明~/.valet/Drivers ディレクトリにはデフォルトの構成ファイル SampleValetDriver.php があり、これには 3 つのメソッド (servers、isStaticFile、frontControllerPath) が含まれています。ここで、独自の構成ファイル FlarumValetDriver.php を構成し、次の 3 つの方法に従って独自のドライバー拡張機能を作成する必要があります。

cp SampleValetDriver.php FlarumValetDriver.php
ログイン後にコピー

FlarumValetDriver.php を開き、最初に、Valet を指定する必要がある Serves メソッドを書き換えます。 Web ルート ディレクトリ (ここでは flarum です。異なる場合は、独自の Flarum アプリケーション ディレクトリに変更する必要があります) の下に対応する Flarum アプリケーション ディレクトリが存在するかどうかを確認します。これは、Nginx でのルートの定義に似ています:

public function serves($sitePath, $siteName, $uri){
    return is_dir($sitePath.'/vendor/flarum')
        && file_exists($sitePath.'/flarum');
}
ログイン後にコピー

次に、isStaticFile メソッドで、指定された URL が静的ファイルを指しており、静的ファイルが存在するかどうかを判断します。これは、nginx で静的ファイル アクセスを定義する方法と似ています。 Apache の mod_rewrite や Nginx の try_uri に似たfrontControllerPath メソッド。ここでリクエストのアクセス パスを書き換えることができます:

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

    return false;
}
ログイン後にコピー

最終結果は次のようになり、~/.valet/Drivers に保存します:

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';
}
ログイン後にコピー

この方法でファルムの全ルートに正常にアクセスできるようになりました。アクセス エラーが報告された場合:

<?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;;
    }
}
ログイン後にコピー

これは、Valet が最新バージョンにアップグレードされていないためです。次のコマンドを実行して Valet をアップグレードしてください:

Call to undefined method FlarumValetDriver::isActualFile() in /Users/sunqiang/.valet/Drivers/FlarumValetDriver.php on line 29
ログイン後にコピー

元のアドレス: https ://xueyuanjun.com/post/5679

以上がMac 開発環境 Laravel Valet で Flarum フォーラム システムを構成および実行する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:xueyuanjun.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート