利用 Valet 开发和调试 PHP 项目

对于开发者来讲,为本身投资买一台 Mac,这但是「低投资高回报」,平时在开发 PHP 项目时,常规的作法须要在电脑上安装一系列开发工具,如: XAMP,还须要配置开发环境,若是涉及到多语言开发,就有可能出现电脑上塞满了各类工具,电脑基本处于高负荷使用,基本不用作其余事情了。php

好在开发 PHP,尤为是基于 Laravel 框架的,彻底能够用上 Laravel Valet 了。linux

Valet 概念

Valet 是为 Mac 提供的极简主义开发环境,没有 Vagrant ,也无需 /etc/hosts 文件,甚至可使用本地隧道公开共享你的站点。Yeah, we like it too.laravel

Laravel Valet 会在你的 Mac 上将 Nginx 设置为随系统启动后台运行,而后使用 DnsMasq , Valet 将全部的请求代理到 *.dev 域名并指向本地安装的站点目录。git

换句话说,一个速度极快的 Laravel 开发环境仅仅须要占用 7MB 内存。 Valet 并非想要替代 Vagrant 或者 Homestead,只是提供另一种选择,更加灵活、方便、以及占用更小的内存。github

Valet 安装

1.安装或更新 Homebrew (brew.sh/) 到最新版本,使用命令 brew updatewindows

2.安装 PHP:brew install homebrew/php/php71
浏览器


注:若是安装了其它版本 PHP,能够经过命令 brew link 替换。

3.安装 Composer: www.phpcomposer.com/缓存

4.经过 composer 安装 Valet:composer global require laravel/valet服务器

5.运行 valet install 命令。它将会配置并安装 Valet 和 DnsMasq ,而且将 Valet 的进程注册为随系统启动。网络

注:Valet 将会在每次系统启动时自动启动,而不须要你每次运行 valet start 或 valet install。

Valet 命令

1.valet link app-name

对于每一个 Laravel 项目,只要在该项目主目录下,运行该命令,则 Valet 将会在 ~/.valet/Sites 中建立一个符号连接并指向当前 Laravel 项目目录。只要在浏览器输入 app-name.dev/ 既可访问该项目了。

2.valet park

因为开发时,不可能只有一个项目,对于多个项目,只要这些项目都放在同一个目录下,并执行该命令,只须要在浏览器输入对应的项目名 + (.dev)便可访问每一个项目站点,从而避免于对每一个项目都须要运行 valet link app-name。

3.valet forget

和命令 valet park 配套使用,只要在某个站点根路径运行该命令可在根目录列表中移除该目录

4.valet paths

可能长时间使用,忘了本身的站点目录和站点连接,彻底能够执行该命令查看:

5.valet share

Valet 还提供一个命令将本地站点分享给其余人,这不须要任何额外安装软件便可实现。

要分享站点,在你的终端中切换到站点目录使用该命令。这会生成一个能够公开访问的 URL连接。只要分享给别人,别人就能够访问了。

valet 能实现该功能,主要是集成了 Dnsmasq。

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。做为域名解析服务器(DNS),dnsmasq能够经过缓存 DNS 请求来提升对访问过的网址的链接速度。做为DHCP 服务器,dnsmasq 能够用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能能够同时或分别单独实现。dnsmasq轻量且易配置,适用于我的用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。
wiki.archlinux.org/index.php/D…)

调试企业号

Valet 除了可以提供更便捷的开发环境之外,正由于有了 valet share,能够作的东西就多了,不但能够分享给别人,供别人访问测试,并且还能够用于企业号,配置服务端访问,调试企业号和公众号。本文拿企业号当 demo 跑跑。

在项目中运行 valet share:

在企业号后台配置对应的服务器连接、Token 和 EncodingAESKey

只要配置成功了,调试企业号或者公众号一些功能,就能够直接在本地一边编写,一边实时测试了,不至于每次都须要提交代码到服务器测试。

彩蛋

1.valet for Windows

valet 也许再也不是 Mac 独有了。如今有人专门制做 windows 版,至于能不能用,我也不了解了:github.com/cretueusebi…

2.valet 能够在知足于多个框架使用

框架 框架 框架
Laravel Lumen Bedrock
CakePHP 3 Concrete5 contao
Craft Drupal Jigsaw
Joomla Katana kirby
Magento OctoberCMS Sculpin
Slim Statamic Symfony
WordPress Zend Static HTML

参考

  1. d.laravel-china.org/docs/5.4/va…
  2. laravel.com/docs/5.4/va…
  3. wiki.archlinux.org/index.php/D…
  4. dotdev.co/laravel-val…

coding01 期待您关注

qrcode
qrcode


感谢您能看到这了

qrcode
qrcode
相关文章
相关标签/搜索