Laravel 的开发环境 Valet

Laravel

在迁移到 Mac 平台之前,一直在 Linux 环境下进行开发,于是更多情况下使用的是 Homestead 。为了确保不同开发者的开发环境一致,Laravel 官方在这方面花了挺大的心思,Homestead 便是这么一个成功的产品。至于 Homestead 的相关介绍,目前考虑以后有时间的时候写一篇,这里我们介绍一下 Laravel 官方提供的另一个产品:Valet 。

Valet 是 Laravel 官方为 Mac 平台提供的一个极其方便的极简主义开发环境。它和 Homestead 所不同的是,它并不是运行在虚拟机里面的,不需要 Vagrant ,也不需要修改你的 hosts 文件,将你本机的 hosts 文件修改得乱七八糟。代价是需要在自己的本机上安装 PHP, Mysql, Nginx 等软件,但这在我看来完全不是代价。你可以将两者看成完全不同的本地开发方式,因此二者目标受众不同也是可以理解的了。

选择 Valet 还是 Homestead?

就目前而言,Valet 只支持 Mac 平台,因此如果你的工作环境是在 Windows 或者 Linux 下,你完全可以忘记 Valet 这回事,无脑选择 Homestead 就好。

当然,并不是说 Mac 平台就不能使用 Homestead。只要你愿意,你一样可以在 Mac 平台使用 Homestead。尤其是当你不想在本机上装这么多杂七杂八的环境,那么提供了一个完整的,包含自动化配置的 Nginx 的 Ubuntu 虚拟机,即 Homestead 则是你完美的选择。

如果你只需要 PHP/Mysql 而不是完整的虚拟化开发环境,那么通过最小的资源消耗来提供一个本地极速开发环境的 Valet 将是你最好的选择。毕竟, 官网上有这么一句话:

In other words, a blazing fast Laravel development environment that uses roughly 7 MB of RAM. Valet isn’t a complete replacement for Vagrant or Homestead, but provides a great alternative if you want flexible basics, prefer extreme speed, or are working on a machine with a limited amount of RAM.

安装 Valet

安装 Valet 是一件非常容易的事情,你只需要执行下列命令即可:

1
$ composer global require laravel/valet

在执行命令之前,请确保 ~/.composer/vendor/bin 存在于你的系统环境变量 「PATH」 中。

在这里我们不讨论 Composer 的安装及使用教程,请读者自行到官网查阅详情。

完成安装之后,你可以尝试使用 ping valet.dev 这样的命令在终端中 ping 任意的 *.dev 域名。如果你看到来自 127.0.0.1 的响应,则说明 Valet 已经成功地安装在了你的电脑之中。

Valet 会随系统自启动,因此不需要每次手动运行 valet start

Valet 的使用

当 Valet 安装完成之后,你就可以使用 Valet 给我们提供的命令来启动一个服务站点了。

  1. park

    park 命令类似于一个集合,它将在当前目录作为 Web 根目录,并告之 Valet 在这个目录下搜索所有可用站点。

    1
    2
    3
    $ mkdir Sites
    $ cd Sites/
    $ valet park

    只要 Sites 目录下存在 Laravel 项目,都可以通过在浏览器中访问 http://folder-name.dev 这种方式访问。

    folder-name 即 Laravel 项目的名称。

  2. link

    park 命令相比,我更喜欢和使用更多的是 link 命令,因为它更灵活,一般用来在你想要的目录中提供单个站点。

    1
    2
    $ cd LaravelProjects/MyLaravel
    $ valet link my-laravel

    运行完 link 命令之后,Valet 将会在 ~/.valet/Sites 中创建一个符号链接并指向当前工作目录。随后,你可以在浏览器中通过 http://my-laravel.dev 来访问站点。

    my-laravel 即为 app-name ,你可以根据自己的喜好和需要自行更改。

    在 Laravel 项目中,我们有时会用到子域名来组织路由,以提供不同的服务。这时,我们依然可以使用 link 命令:

    1
    $ valet link sub-domain.app-name

    sub-domain 即为你的子域名。

其他 Valet 常用命令

除了上面介绍的两个命令之外,Valet 还提供了许多实用的命令:

命令 描述
valet start 启动
valet stop 停止
valet restart 重启
valet forget 在某个站点根路径运行该命令可在根目录列表中移除该目录
valet paths 查看所有站点根路径
valet links 查看所有的链接目录
valet unlink 删除符号链接
valet uninstall 卸载

写在最后

除了上面介绍的一些基本用法之外,Valet 还有一些其他非常强大的功能。例如更改默认的顶级域名,通过 TLS 来加密网站,分享本地站点,自定义 Valet 驱动来运行非原生支持的其他 PHP 框架或 CMS等等。在这里就不进行详细介绍了,请读者前往 Valet 官方文档 自行查阅。

0%