<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                * * * * * [TOC] ## 簡介 Valet 是 Mac 極簡主義者的 Laravel 開發環境。沒有 Vagrant,不需要配置?`/etc/hosts`?文件。甚至可以使用本地隧道公開分享你的站點。 Yeah, we like it too. Laravel Valet 為您的 Mac 設置了開機后始終在后臺運行?[Nginx](https://www.nginx.com/)?服務。 然后,Valet 使用?[DnsMasq](https://en.wikipedia.org/wiki/Dnsmasq)?將所有指向安裝在本地的計算機站點請求代理到?`*.test`?結尾的域名上。 換句話說,一個速度極快的 Laravel 開發環境只占用 7MB 內存。Valet 并不是想要完全替換 Vagrant 或 Homestead,只是提供另外一種使用起來更加靈活、方便、以及內存占用更小的選擇。 Valet 支持但不局限于以下內容: * [Laravel](https://laravel.com/) * [Lumen](https://lumen.laravel.com/) * [Bedrock](https://roots.io/bedrock/) * [CakePHP 3](https://cakephp.org/) * [Concrete5](https://www.concrete5.org/) * [Contao](https://contao.org/en/) * [Craft](https://craftcms.com/) * [Drupal](https://www.drupal.org/) * [Jigsaw](http://jigsaw.tighten.co/) * [Joomla](https://www.joomla.org/) * [Katana](https://github.com/themsaid/katana) * [Kirby](https://getkirby.com/) * [Magento](https://magento.com/) * [OctoberCMS](https://octobercms.com/) * [Sculpin](https://sculpin.io/) * [Slim](https://www.slimframework.com/) * [Statamic](https://statamic.com/) * Static HTML * [Symfony](https://symfony.com/) * [WordPress](https://wordpress.org/) * [Zend](https://framework.zend.com/) 當然, 您也可以使用?[自定義驅動](http://www.hmoore.net/tonyyu/laravel_5_6/786196#_Valet__142)?來擴展您的 Valet。 ### Valet 還是 Homestead 您應該知道,Laravel 還提供了另外一種本地開發環境?[Homestead](http://www.hmoore.net/tonyyu/laravel_5_6/786195)。 Homestead 和 Valet 的不同之處在于目標受眾和本地開發的方式。Homestead 提供了一個完整的、具有自動化的 Nginx 配置的 Ubuntu 虛擬機。如果你想要完全虛擬化的 Linux 開發環境或 Windows/Linux,Homestead 是一個不錯的選擇。 Valet 僅支持 Mac,并要求你將 PHP 和數據庫服務器直接安裝到本地機器上。這可以很容易地通過使用?[Homebrew](http://brew.sh/)?命令來實現,比如?`brew install php72`?和?`brew install mysql`。Valet 提供了一個極快的、資源消耗最少本地開發環境,非常適合只需要 PHP/MySQL 并且不需要虛擬開發環境的開發人員。 Valet 和 Homestead 都是配置 Laravel 開發環境的絕佳選擇。選擇哪一個僅僅取決于個人喜好和團隊的需求。 ## 安裝 **Valet 需要 macOS 和?[Homebrew](http://brew.sh/)。在安裝之前,要確保沒有其它程序(如 Apache 或 Nginx)占用了本地機器的 80 端口。** * 使用?`brew update`?將?[Homebrew](http://brew.sh/)?安裝或更新到最新版本。 * 通過 Homebrew 使用?`brew install php@7.2`?命令安裝 PHP 7.2。 * 通過 Composer 使用?`composer global require laravel/valet`?命令安裝 Valet 。確保?`~/.composer/vendor/bin`?目錄位于系統的 "PATH" 中。 * 運行?`valet install`?命令來配置和安裝 Valet 和 DnsMasq,并注冊 Valet 后臺服務,隨系統運行自行啟動。 安裝完 Valet 后,可以嘗試使用類似?`ping foobar.test`?的命令在終端上 ping 任何一個?`*.test`?的域名。如果 Valet 安裝正確,可以在終端上看到來自?`127.0.0.1`?的響應。 每次機器啟動時,Valet 會自動啟動其進程。所以只要完成了 Valet 的初始化,就無需再次運行?`valet start`?或?`valet install`?。 #### 使用其它域名 默認情況下,Valet 使用?`.test`?頂級域名為你的項目提供服務。如果你想使用其它域名,可以使用?`valet domain tld-name`?命令。 例如,如果你要使用?`.app`?而不是?`.test`?,就運行?`valet domain app`?,Valet 會自動將站點域名改為?`*.app`。 #### 數據庫 如果你要使用數據庫,就在終端運行?`brew install mysql`?安裝 MySQL。安裝完成后,你可能需要使用?`brew services start mysql`?命令來啟動服務。你可以使用?`root`?作為用戶名和空字符串作為密碼連接到?`127.0.0.1`?的數據庫。 ### 升級 你可以在終端使用?`composer global update`?命令來更新 Valet 。升級后,如有需要,最好再運行一次?`valet install`?,以便 Valet 可以對配置文件進行升級。 #### 升級到 Valet 2.0 Valet 2.0 將 Valet 底層的 Web 服務器從 Caddy 轉移到 Nginx。升級到此版本之前,你應該運行以下命令停止并卸載現有的 Caddy 進程: ~~~ valet stop valet uninstall ~~~ 接下來,就根據你如何采用的安裝方式來升級 Valet (通常是通過 Git 或 Composer )。如果是通過 Composer 安裝了 Valet ,則應使用以下命令更新到最新的主要版本: ~~~ composer global require laravel/valet ~~~ 如果更新了 Valet 的源碼,你應該執行?`install`?命令: ~~~ valet install valet restart ~~~ 升級過后,可能需要重新設置或重新鏈接你的站點。 ## 服務站點 安裝了 Valet 之后,你就可以開始設置站點。Valet 提供兩個命令來為 Laravel 的站點提供服務:`park`?和?`link`?。 **`park`?命令** * 運行?`mkdir ~/Sites`?命令在 Mac 上創建一個新的目錄。接下來,運行?`cd ~/Sites`?和?`valet park`?將當前的工作目錄作為 Valet 搜索站點的路徑。 * 接下來,在這個目錄中創建一個新的 Laravel 站點:`laravel new blog`?。 * 在瀏覽器中打開?`http://blog.test`?。 **就這么多。**?現在,你在 『parked』的目錄中創建的任何 Laravel 項目都將自動使用?`http://folder-name.test`?這種方式訪問。 **`link`?命令** 如果要在目錄中提供單個站點而不是整個目錄,就使用?`link`?命令。 * 要使用該命令,先在終端里切換到你的某個項目并運行?`valet link app-name`?。Valet 會在?`~/.valet/Sites`中創建一個符號鏈接指向當前的目錄。 * 運行?`link`?命令后,你可以在瀏覽器通過?`http://app-name.test`?訪問站點。 運行?`valet links`?命令可以查看所有目錄鏈接的列表。你還可以使用?`valet unlink app-name`?來刪除符號鏈接。 > {tip} 你可以使用?`valet link`?將多個(子)域名指向同一個應用。要添加子域名或其它域名到應用,可以在應用目錄下運行?`valet link subdomain.app-name`?。 **使用 TLS 構建安全站點** 默認情況下,Valet 使用 HTTP 協議提供站點。但是,如果你想使用 HTTP/2 提供加密的 TLS 站點,使用?`secure`?命令。例如,如果你的站點域名是?`laravel.test`?,可以這樣: ~~~ valet secure laravel ~~~ 要還原為 HTTP ,使用?`unsecure`?命令。想?`secure`?命令一樣,此命令接受你要取消安全加密的站點名稱: ~~~ valet unsecure laravel ~~~ ## 分享站點 Valet 甚至包括與全世界分享你的本地網站的命令。一旦安裝了 Valet ,就不需要額外的軟件安裝。 要共享站點,先在終端切換到站點目錄,然后運行?`valet share`?命令。將可公開訪問的網址插入剪貼板,然后直接粘貼到瀏覽器中訪問。就這么簡單~ 要停止分享你的網站按?`Control + C`?取消分享。 > {note}?`valet share`?目前不支持使用?`valet secure`?命令保護共享的站點。 ## 自定義 Valet 驅動 你可以編寫自己的 Valet 「驅動」來提供運行在另一個不是由 Valet 支持的框架或 CMS 上的 PHP 應用程序。安裝 Valet 時,會創建一個包含?`SampleValetDriver.php`?文件?`~/.valet/Drivers`?目錄。這個文件包含實現驅動程序的例子,演示了如何編寫自定義驅動程序。編寫驅動程序只需要實現三種方法:`serves`、?`isStaticFile`?和`frontControllerPath`。 這三種方法都會收到?`$sitePath`、`$siteName`?和?`$uri`?值作為參數。`$sitePath`?是計算機上提供的站點的完整路徑,例如?`/Users/Lisa/Sites/my-project`。`$siteName`?是 「主機」 / 「站點名」 的域名部分,如?`my-project`。?`$uri`?則是輸入的請求地址,如?`/foo/bar`。 完成自定義 Valet 驅動后,使用?`FrameworkValetDriver.php`?這樣的命名將其放在?`~/.valet/Drivers`?目錄中。例如,如果你正在為 WordPress 編寫自定義 Valet 驅動程序,那你的文件名應該是?`WordPressValetDriver.php`。 接下來看看自定義 Valet 驅動應該實現的每種方法的實現示例。 #### `serves`?方法 如果你的驅動程序應該處理傳入的請求,那么?`serves`?方法應該返回?`true`。否則,該方法應返回?`false`。因此,在此方法中,你需要確定給定的?`$sitePath`?是否包含你要提供的類型的項目。 例如,假設我們正在編寫一個?`WordPressValetDriver`。`serve`?方法可能如下所示: ~~~ /** * 確定驅動程序是否提供請求。 * * @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`?應該確定傳入的請求是否是一個「靜態」的文件,如圖像或樣式表。如果文件是靜態的,該方法應該將完整的路徑返回到磁盤上的靜態文件。如果傳入的請求不是靜態文件,則該方法應返回?`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} 只有當傳入請求的?`serves`?方法返回?`true`?并且請求的 URI 不是?`/`?時,才會調用?`isStaticFile`?方法。 #### `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 forget` | 在被「parked」的目錄中運行這個命令,能夠將這個目錄從「parked」目錄列表中刪除。 | | `valet paths` | 查看所有「parked」過的路徑。 | | `valet restart` | 重啟 Valet。 | | `valet start` | 啟動 Valet。 | | `valet stop` | 停止 Valet。 | | `valet uninstall` | 卸載 Valet。 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看