利用 Valet 开发和调试 PHP 项目

利用 Valet 开发和调试 PHP 项目

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

好在开发 PHP,尤其是基于 Laravel 框架的,完全可以用上 Laravel Valet 了。

Valet 概念

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

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

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

Valet 安装

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

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


利用 Valet 开发和调试 PHP 项目

注:如果安装了其它版本 PHP,可以通过命令 brew link 替换。

3.安装 Composer: http://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 项目目录。只要在浏览器输入 http://app-name.dev/ 既可访问该项目了。

2.valet park

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

3.valet forget

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

4.valet paths

可能长时间使用,忘了自己的站点目录和站点链接,完全可以执行该命令查看:


利用 Valet 开发和调试 PHP 项目

5.valet share

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

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

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

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。
https://wiki.archlinux.org/index.php/Dnsmasq_(简体中文)

调试企业号

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

在项目中运行 valet share:


利用 Valet 开发和调试 PHP 项目

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


利用 Valet 开发和调试 PHP 项目

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

彩蛋

1.valet for Windows

valet 也许不再是 Mac 独有了。现在有人专门制作 windows 版,至于能不能用,我也不了解了:https://github.com/cretueusebiu/valet-windows

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. http://d.laravel-china.org/docs/5.4/valet
  2. https://laravel.com/docs/5.4/valet
  3. https://wiki.archlinux.org/index.php/Dnsmasq
  4. https://dotdev.co/laravel-valet/

听说最美的人和最帅的人,都会给作者打赏,以资鼓励

利用 Valet 开发和调试 PHP 项目
qrcode

coding01 期待您关注

利用 Valet 开发和调试 PHP 项目
qrcode