係員付き係員


インストール

    アップグレード
  • パーク コマンド
    • リンク コマンド
    • TLS を使用して安全なサイトを構築する
    • 共有サイト
    • カスタマイズされたバレードライバー
    • ローカルドライバー
  • その他の Valet コマンド
    • はじめに

      Valet は、Mac ミニマリスト向けの Laravel 開発環境です。 Vagrant を使用しない場合、/etc/hosts ファイルを設定する必要はありません。ローカル トンネルを使用してサイトをパブリックに共有することもできます。ええ、私たちも気に入っています。

      Laravel Valet は、Mac の起動後に常に Nginx サービスをバックグラウンドで実行するように設定します。次に、Valet は DnsMasq を使用して、ローカルにインストールされたコンピューターに送信されるすべてのサイト要求を *.test で終わるドメイン名にプロキシします。

      言い換えれば、超高速な Laravel 開発環境は 7MB のメモリしか必要としません。 Valet は、Vagrant や Homestead を完全に置き換えることを目的としたものではなく、より柔軟で便利でメモリ使用量が少ない別のオプションを提供することを目的としています。

      Valet は以下をサポートしますが、これらに限定されません:

      • Laravel
      • Lumen
      • Bedrock
      • CakePHP 3
      • Concrete5
      • Contao
      • Craft
      • Drupal
      • Jigsaw
      • Joomla
      • Katana
      • カービィ
      • Magento
      • OctoberCMS
      • スカルピン
      • スリム
      • 静的
      • 静的HTML
      • Symfony
      • WordPress
      • Zend

      もちろん、カスタム ドライバーを使用して拡張することもできますあなたの係員。

      Valet または Homestead

      Laravel には、Homestead という別のローカル開発環境も提供されていることを知っておく必要があります。ホームステッドとバレットの違いは、対象者と地域開発へのアプローチです。 Homestead は、自動化された Nginx 構成を備えた完全な Ubuntu 仮想マシンを提供します。 Windows/Linux 上に完全に仮想化された Linux 開発環境を実装したい場合は、Homestead が良い選択です。

      Valet は Mac のみで、PHP とデータベース サーバーをローカル マシンに直接インストールする必要があります。これは、brew install phpbrew install mysql などの Homebrew コマンドを使用することで簡単に実現できます。 Valet は、非常に高速で、リソースの消費が最小限に抑えられたローカル開発環境を提供します。これは、PHP/MySQL のみが必要で、仮想開発環境を必要としない開発者に最適です。

      Valet と Homestead はどちらも、Laravel 開発環境を構成するための優れた選択肢です。どちらを選択するかは、個人の好みとチームのニーズによって決まります。

      インストール

      ValetにはmacOSシステムとHomebrewが必要です。インストールする前に、他のプログラム (Apache や Nginx など) がローカル マシンのポート 80 を占有していないことを確認してください。

      • brew update を使用して、Homebrew をインストールまたは最新バージョンに更新します。
      • Homebrew の brew install php コマンドを使用して、PHP 7.3 をインストールします。
      • Composer をインストールします。
      • Composer の composer global require laravel/valet コマンドを使用して、Valet をインストールします。そして、~/.composer/vendor/bin ディレクトリがシステムの「PATH」にあることを確認してください。
      • valet install コマンドを実行して、Valet と DnsMasq を構成およびインストールし、システムの実行時に自動的に開始される Valet バックグラウンド サービスを登録します。

      Valet をインストールした後、ping foobar.test## のようなコマンドを使用して、端末上の任意の *.test ドメイン名に ping を試みることができます。 # 。 Valet が正しくインストールされている場合は、端末上で 127.0.0.1 からの応答を確認できます。

      Valet は、マシンが起動するたびにプロセスを自動的に開始します。したがって、Valet が初期化されると、

      valet start または valet install を再度実行する必要はありません。

      別のドメイン名を使用する

      デフォルトでは、Valet は

      .test 最上位ドメイン名を使用してプロジェクトを提供します。別のドメイン名を使用する場合は、valet domain tld-name コマンドを使用できます。

      たとえば、

      .test の代わりに .app を使用する場合は、valet ドメイン app を実行します。Valet はサイトのドメインを自動的に変更します。トップレベル ドメイン名は *.app です。

      データベース

      データベースを使用する場合は、ターミナルで

      brew install mysql@5.7 を実行して MySQL をインストールしてください。インストールが完了したら、brew services start mysql コマンドを使用して MySQL を起動できます。その後、root ユーザー名と空の文字列パスワードを使用して、127.0.0.1 のデータベースに接続できます。

      PHP バージョン

      Valet では、

      valet use php@version コマンドを使用して PHP バージョンを切り替えることができます。指定されたバージョンがまだインストールされていない場合、Valet は Brew を通じて指定された PHP バージョンをインストールします:

      valet use php@7.2valet use php

      Upgrade

      You Valet は、ターミナルで

      composer global update コマンドを使用して更新できます。アップグレード後、必要に応じて、Valet が構成ファイルをアップグレードできるように、valet install を再度実行することをお勧めします。

      Valet 2.0 へのアップグレード

      Valet 2.0 は、Valet の基盤となる Web サーバーを Caddy から Nginx に移動します。このバージョンにアップグレードする前に、次のコマンドを実行して既存の Caddy プロセスを停止してアンインストールする必要があります:

      valet stop
      valet uninstall

      次に、インストール方法 (通常は Git または Composer 経由) に応じて Valet をアップグレードします。 Valet が Composer を通じてインストールされている場合は、次のコマンドを使用して最新のメジャー バージョンに更新する必要があります:

      composer global require laravel/valet

      Valet のソース コードを更新した場合は、インストール コマンドを実行する必要があります:

      valet install
      valet restart

      アップグレード後、サイトをリセットまたは再リンクする必要がある場合があります。

      サービス サイト

      Valet をインストールしたら、サイトのセットアップを開始できます。 Valet は、Laravel サイトにサービスを提供する 2 つのコマンド、parklink を提供します。


      park コマンド

        実行
      • mkdir ~/Sites コマンドは Mac 上に新しいディレクトリを作成します。次に、cd ~/Sitesvalet park を実行して、現在の作業ディレクトリを Valet がサイトを検索するためのパスとして使用します。
      • 次に、このディレクトリに新しい Laravel サイトを作成します:
      • laravel new blog
      • ブラウザで
      • http://blog.test を開きます。

      以上です。 これで、「パーク」ディレクトリに作成した Laravel プロジェクトは、http://folder-name.test を使用して自動的にアクセスされるようになります。


      リンク コマンド

      ディレクトリではなくディレクトリ内の単一サイトを提供する場合に使用します。ディレクトリ全体のリンクコマンド。

        このコマンドを使用するには、まずターミナルでプロジェクトの 1 つに切り替えて、
      • valet link app-name を実行します。 Valet は、現在のディレクトリを指すシンボリック リンクを ~/.valet/Sites に作成します。
      • link コマンドを実行すると、ブラウザの http://app-name.test を通じてサイトにアクセスできます。

      valet links コマンドを実行して、すべてのディレクトリ リンクのリストを表示します。 valet unlink app-name を使用してシンボリック リンクを削除することもできます。

      {ヒント} valet link を使用して、複数の (サブ) ドメイン名を同じアプリケーションに指定できます。サブドメインまたは他のドメイン名をアプリケーションに追加するには、アプリケーション ディレクトリで valet link subdomain.app-name を実行します。


      TLS を使用したサイトの保護

      デフォルトでは、Valet はプレーン HTTP 経由でサイトを提供します。ただし、HTTP/2 を使用して暗号化された TLS 経由でサイトを提供する場合は、secure コマンドを使用します。たとえば、サイトが Valet 経由で laravel.test ドメインで提供されている場合、次のコマンドを実行してサイトを保護する必要があります:

      valet secure laravel

      サイトの「保護を解除」してサイトを復元するにはプレーン HTTP 経由でトラフィックを処理するには、unsecure コマンドを使用します。 secure コマンドと同様に、このコマンドは保護を解除するホストの名前を受け入れます:

      valet unsecure laravel

      #共有サイト

      Valet には、ローカル サイトを世界と共有するコマンドも含まれています。 Valet をインストールしたら、追加のソフトウェアをインストールする必要はありません。

      サイトを共有するには、ターミナルでサイト ディレクトリに移動し、

      valet share コマンドを実行します。一般にアクセス可能な URL がクリップボードに挿入され、ブラウザに直接貼り付けることができます。それだけです。

      サイトの共有を停止するには、

      Control C を押してプロセスをキャンセルします。

      カスタム Valet ドライバー

      独自の Valet 「ドライバー」を作成して、Valet が本来サポートしていない他のフレームワークまたは CMS 上で実行される PHP アプリケーションにサービスを提供できます。 Valet をインストールすると、SampleValetDriver.php ファイルを含むディレクトリ ~/.config/valet/Drivers が作成されます。このファイルには、カスタム ドライバーの作成方法を示すサンプル ドライバー実装が含まれています。ドライバーを作成するには、servesisStaticFile、および frontControllerPath の 3 つのメソッドを実装するだけで済みます。

      3 つのメソッドはすべて、$sitePath$siteName、および $uri の値をパラメーターとして受け入れます。 $sitePath は、サイトにサービスを提供するマシン上の完全修飾パスです。たとえば、/Users/Lisa/Sites/my-project です。 $siteName は、ドメイン (my-project) の「ホスト」/「サイト名」の部分です。 $uri は受信リクエスト URL (/foo/bar) です。

      カスタム Valet ドライバーが完成したら、FrameworkValetDriver.php 命名規則を使用して、それを ~/.config/valet/Drivers ディレクトリに配置します。たとえば、WordPress 用のカスタム バレット ドライバーを作成した場合、ファイル名は WordPressValetDriver.php になります。

      カスタム Valet ドライバーが実装する必要がある各メソッドのサンプル実装を見てみましょう。

      serves メソッド

      ドライバーが受信リクエストを処理する必要がある場合、serves メソッドは true を返す必要があります。 。それ以外の場合、このメソッドは false を返す必要があります。したがって、このメソッドでは、指定された $sitePath に、提供しようとしているタイプの項目が含まれているかどうかを判断する必要があります。

      たとえば、WordPressValetDriver を作成しているとしましょう。 serves メソッドは次のようになります:

      /**
       * 确定驱动程序是否满足请求。
       *
       * @param  string  $sitePath
       * @param  string  $siteName
       * @param  string  $uri
       * @return bool
       */
       public function serves($sitePath, $siteName, $uri){ 
          return is_dir($sitePath.'/wp-admin');
          }

      isStaticFile Method

      isStaticFile受信リクエストが画像やスタイルシートなどの「静的」ファイルに対するものであるかどうかを判断します。ファイルが静的な場合、このメソッドはディスク上の静的ファイルへの完全修飾パスを返す必要があります。受信リクエストが静的ファイルに対するものではない場合、このメソッドは false:

      /**
       * 确定即将到来的请求是否针对静态文件。
       *
       * @param  string  $sitePath
       * @param  string  $siteName
       * @param  string  $uri
       * @return string|false
       */public function isStaticFile($sitePath, $siteName, $uri){ 
          if (file_exists($staticFilePath = $sitePath.'/public/'.$uri)) { 
                 return $staticFilePath;   
                  } 
                 return false;
              }

      {note} を返す必要があります。受信リクエスト そして、isStaticFile メソッドは、リクエスト URI が / ではなく、true が返された場合にのみ呼び出されます。

      frontControllerPath

      メソッド

      frontControllerPath

      このメソッドは、アプリケーションの完全な「フロント コントローラー」を返す必要があります。修飾されたパス。通常は「index.php」ファイルまたは同等のファイルです:

      /**
       * 获取对应用程序的前端控制器的完全解析路径。
       *
       * @param  string  $sitePath
       * @param  string  $siteName
       * @param  string  $uri
       * @return string
       */
       public function frontControllerPath($sitePath, $siteName, $uri){
           return $sitePath.'/public/index.php';
           }

      ローカル ドライバー

      単一アプリケーション用に Valet ドライバーをカスタマイズする場合は、アプリケーションのルート ディレクトリに LocalValetDriver.php ファイルを作成します。カスタム ドライバーは、ValetDriver 基本クラスを拡張するか、次のような既存のアプリケーション固有のドライバーを継承できます。 LaravelValetDriver:

      class LocalValetDriver extends LaravelValetDriver{   
          /**
           * 确定驱动程序是否满足请求。
           *
           * @param  string  $sitePath
           * @param  string  $siteName
           * @param  string  $uri
           * @return bool
           */ 
            public function serves($sitePath, $siteName, $uri){ 
                   return true;    
                   }    
          /**
           * 获取对应用程序的前端控制器的完全解析路径。
           *
           * @param  string  $sitePath
           * @param  string  $siteName
           * @param  string  $uri
           * @return string
           */
           public function frontControllerPath($sitePath, $siteName, $uri){    
               return $sitePath.'/public_html/index.php';  
                 }
          }

      その他の Valet コマンド

      #Valet デーモン プロセスを再起動Valet デーモン プロセスを開始しますValet デーモンを停止しますValet デーモンのアンインストールを完了します
      コマンド説明
      valet remember「常駐」ディレクトリからこのコマンドを実行して、常駐ディレクトリ リストから他のディレクトリを削除します
      valet パスすべての「常駐」パスを表示
      valet の再起動
      valet start
      valet stop
      valet uninstall
      この記事は、