国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Valet

Valet


Laravel Valet

簡介

Valet 是 Mac 極簡主義者的 Laravel 開發(fā)環(huán)境。沒有 Vagrant,不需要配置 /etc/hosts 文件。 甚至可以使用本地隧道公開分享你的站點。 Yeah, we like it too.

Laravel Valet 為您的 Mac 設(shè)置了開機后始終在后臺運行 Nginx 服務(wù)。 然后,Valet 使用 DnsMasq 將所有指向安裝在本地的計算機站點請求代理到 *.test 結(jié)尾的域名上。

換句話說,一個速度極快的 Laravel 開發(fā)環(huán)境只占用 7MB 內(nèi)存。Valet 并不是想要完全替換 Vagrant 或 Homestead,只是提供另外一種使用起來更加靈活、方便、以及內(nèi)存占用更小的選擇。

Valet 支持但不局限于以下內(nèi)容:

  • Laravel
  • Lumen
  • Bedrock
  • CakePHP 3
  • Concrete5
  • Contao
  • Craft
  • Drupal
  • Jigsaw
  • Joomla
  • Katana
  • Kirby
  • Magento
  • OctoberCMS
  • Sculpin
  • Slim
  • Statamic
  • Static HTML
  • Symfony
  • WordPress
  • Zend

當然,您也可以使用 自定義驅(qū)動 來擴展您的 Valet。

Valet 還是 Homestead

您應(yīng)該知道,Laravel 還提供了另外一種本地開發(fā)環(huán)境 Homestead。Homestead 和 Valet 的不同之處在于目標受眾和本地開發(fā)的方式。Homestead 提供了一個完整的、具有自動化的 Nginx 配置的 Ubuntu 虛擬機。如果你想在 Windows/Linux 上實現(xiàn)完全虛擬化的 Linux 開發(fā)環(huán)境,Homestead 是一個不錯的選擇。

Valet 僅支持 Mac,并要求你將 PHP 和數(shù)據(jù)庫服務(wù)器直接安裝到本地機器上。這可以很容易地通過使用 Homebrew 命令來實現(xiàn),比如 brew install phpbrew install mysql。Valet 提供了一個極快的、資源消耗最少本地開發(fā)環(huán)境,非常適合只需要 PHP/MySQL 并且不需要虛擬開發(fā)環(huán)境的開發(fā)人員。

Valet 和 Homestead 都是配置 Laravel 開發(fā)環(huán)境的絕佳選擇。選擇哪一個僅僅取決于個人喜好和團隊的需求。

安裝

Valet 需要 macOS 系統(tǒng)和 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 目錄在系統(tǒng)的 "PATH" 中。
  • 運行 valet install 命令來配置和安裝 Valet 和 DnsMasq,并注冊 Valet 后臺服務(wù),隨系統(tǒng)運行自行啟動。

安裝完 Valet 后,可以嘗試使用類似 ping foobar.test 的命令在終端上 ping 任何一個 *.test 的域名。如果 Valet 安裝正確,可以在終端上看到來自 127.0.0.1 的響應(yīng)。

每次機器啟動時,Valet 會自動啟動其進程。所以只要完成了 Valet 的初始化,就無需再次運行 valet startvalet install。

使用其它域名

默認情況下,Valet 使用 .test 頂級域名為你的項目提供服務(wù)。如果你想使用其它域名,可以使用 valet domain tld-name 命令。

例如,如果你想使用 .app 來代替 .test,運行 valet domain app,Valet 會自動將站點頂級域名改為 *.app

數(shù)據(jù)庫

如果你要使用數(shù)據(jù)庫,請在終端運行 brew install mysql@5.7 安裝 MySQL。一旦安裝完成,你可以使用 brew services start mysql 命令啟動 MySQL。然后,你可以使用 root 用戶名和空字符串密碼連接到 127.0.0.1 的數(shù)據(jù)庫。

PHP 版本

Valet 允許你使用 valet use php@version 命令來切換 PHP 版本。如果指定版本尚未安裝,Valet 將通過 Brew 來安裝指定的 PHP 版本:

valet use php@7.2valet use php

升級

你可以在終端使用 composer global update 命令來更新 Valet。升級后,如有需要,最好再次運行 valet install ,以便 Valet 對配置文件進行升級。

升級到 Valet 2.0

Valet 2.0 將 Valet 底層的 Web 服務(wù)器從 Caddy 轉(zhuǎn)移到 Nginx。升級到此版本之前,你應(yīng)該運行以下命令停止并卸載現(xiàn)有的 Caddy 進程:

valet stop
valet uninstall

接下來,就根據(jù)你采用的安裝方式來升級 Valet (通常是通過 Git 或 Composer )。如果是通過 Composer 安裝了 Valet ,則應(yīng)使用以下命令更新到最新的主要版本:

composer global require laravel/valet

如果更新了 Valet 的源碼,你應(yīng)該執(zhí)行 install 命令:

valet install
valet restart

升級過后,可能需要重新設(shè)置或重新鏈接你的站點。

服務(wù)站點

安裝了 Valet 之后,你就可以開始設(shè)置站點。Valet 提供兩個命令來為 Laravel 的站點提供服務(wù): parklink


park 命令

  • 運行 mkdir ~/Sites 命令在 Mac 上創(chuàng)建一個新的目錄。接下來,運行 cd ~/Sitesvalet park 將當前的工作目錄作為 Valet 搜索站點的路徑。
  • 接下來,在這個目錄中創(chuàng)建一個新的 Laravel 站點:laravel new blog。
  • 在瀏覽器中打開 http://blog.test。

就這么多。 現(xiàn)在,你在 『parked』的目錄中創(chuàng)建的任何 Laravel 項目都將自動使用 http://folder-name.test 這種方式訪問。


link 命令

如果要在目錄中提供單個站點而不是整個目錄,就使用 link 命令。

  • 要使用該命令,先在終端里切換到你的某個項目并運行 valet link app-name。Valet 會在 ~/.valet/Sites 中創(chuàng)建一個符號鏈接指向當前的目錄。
  • 運行 link 命令后,你可以在瀏覽器通過 http://app-name.test 訪問站點。

運行 valet links 命令可以查看所有目錄鏈接的列表。你還可以使用 valet unlink app-name 來刪除符號鏈接。

{tip} 你可以使用 valet link 將多個(子)域名指向同一個應(yīng)用。要添加子域名或其它域名到應(yīng)用,可以在應(yīng)用目錄下運行 valet link subdomain.app-name。


使用 TLS 保護站點

默認情況下,Valet 服務(wù)站點通過純 HTTP 的方式。但是,如果你想一個站點使用 HTTP/2 通過加密 TLS 提供服務(wù),使用 secure 命令。例如,如果你的站點通過 Valet 在 laravel.test 域上提供服務(wù),你應(yīng)當運行如下的命令去保護它:

valet secure laravel

要一個站點『解除保護』并恢復為通過純 HTTP 提供服務(wù)它的流量,使用 unsecure 命令。與 secure 命令一樣,該命令接受你希望去解除保護的主機名稱:

valet unsecure laravel

共享站點

Valet 甚至包括與世界共享你的本地站點的命令。一旦安裝 Valet 后無需安裝其它軟件。

要共享站點,在終端中導航你的站點目錄并運行 valet share 命令。一個公開可訪問的 URL 將被插入到剪貼板中,并可以直接粘貼到你的瀏覽器中。僅此而已。

要停止共享你的站點,請按 Control + C 去取消該過程。

自定義 Valet 驅(qū)動

你可以編寫你自己的 Valet『驅(qū)動』來為 Valet 原本不支持的其它框架或 CMS 上運行的 PHP 應(yīng)用程序提供服務(wù)。當你安裝 Valet 時,會創(chuàng)建一個包含 SampleValetDriver.php 文件的 ~/.config/valet/Drivers 目錄。該文件包含一個示例驅(qū)動程序?qū)崿F(xiàn),演示了如何編寫一個自定義的驅(qū)動程序。編寫驅(qū)動程序僅需要你去實現(xiàn)三個方法:serves,isStaticFilefrontControllerPath

這三個方法都接受 $sitePath,$siteName$uri 值作為參數(shù)。$sitePath 是你的機器上提供站點的完全限定路徑。比如 /Users/Lisa/Sites/my-project$siteName 是域(my-project)的『主機』/『站點名稱』部分。$uri 是即將到來的請求 URL(/foo/bar)。

一旦你完成你的自定義 Valet 驅(qū)動,使用 FrameworkValetDriver.php 命名約定將它放置在 ~/.config/valet/Drivers 目錄中。例如,如果你為 WordPress 編寫了一個自定義的 valet 驅(qū)動,你的文件名稱應(yīng)該是 WordPressValetDriver.php。

我們來看看自定義的 Valet 驅(qū)動程序應(yīng)該實現(xiàn)的每種方法的示例實現(xiàn)。

serves 方法

如果你的驅(qū)動程序應(yīng)當處理即將到來的請求時, serves 方法應(yīng)該返回 true。否則,此方法應(yīng)當返回 false。因此,在此方法中,你應(yīng)該你企圖確定給定的 $sitePath 是否包含你嘗試提供的類型的項目。

例如,讓我們假裝正在編寫一個 WordPressValetDriver。我們的 serves 方法可能看起來如下所示:

/**
 * 確定驅(qū)動程序是否滿足請求。
 *
 * @param  string  $sitePath
 * @param  string  $siteName
 * @param  string  $uri
 * @return bool
 */
 public function serves($sitePath, $siteName, $uri){ 
    return is_dir($sitePath.'/wp-admin');
    }

isStaticFile 方法

isStaticFile 應(yīng)當確定即將到來的請求是否針對一個『靜態(tài)』文件,比如:圖片和樣式表。如果文件是靜態(tài)的,此方法應(yīng)當返回靜態(tài)文件在磁盤上的完全限定路徑。如果即將到來的請求不是針對一個靜態(tài)文件,這個方法應(yīng)當返回 false

/**
 * 確定即將到來的請求是否針對靜態(tài)文件。
 *
 * @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} 如果 serves 方法對即將到來的請求且請求 URI 不是 / 返回 true 時,才會調(diào)用 isStaticFile 方法。

frontControllerPath 方法

frontControllerPath 方法應(yīng)當返回你的應(yīng)用程序的『前端控制器』完全限定的路徑,它通常是你的 『index.php』文件或者等效的文件:

/**
 * 獲取對應(yīng)用程序的前端控制器的完全解析路徑。
 *
 * @param  string  $sitePath
 * @param  string  $siteName
 * @param  string  $uri
 * @return string
 */
 public function frontControllerPath($sitePath, $siteName, $uri){
     return $sitePath.'/public/index.php';
     }

本地驅(qū)動

如果你想為單個應(yīng)用程序自定義 Valet 驅(qū)動程序,在應(yīng)用程序的根目錄下創(chuàng)建一個 LocalValetDriver.php 文件。你的自定義驅(qū)動程序可以擴展 ValetDriver 基類或者繼承一個現(xiàn)有的應(yīng)用程序的特定驅(qū)動程序,比如:LaravelValetDriver

class LocalValetDriver extends LaravelValetDriver{   
    /**
     * 確定驅(qū)動程序是否滿足請求。
     *
     * @param  string  $sitePath
     * @param  string  $siteName
     * @param  string  $uri
     * @return bool
     */ 
      public function serves($sitePath, $siteName, $uri){ 
             return true;    
             }    
    /**
     * 獲取對應(yīng)用程序的前端控制器的完全解析路徑。
     *
     * @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 forget從一個『駐留』目錄運行此命令,從駐留目錄列表將其它移除
valet paths查看所有『駐留』路徑
valet restart重啟 Valet 守護進程
valet start開啟 Valet 守護進程
valet stop停止 Valet 守護進程
valet uninstall完成卸載 Valet 守護進程
本文章首發(fā)在 LearnKu.com 網(wǎng)站上。