kernelfolla/homestead

laravel/homestead 的分支,包含一些自定义修改。

安装: 408

依赖: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 1,448

开放问题: 0

语言:Shell

v1.0.1 2016-12-11 17:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:39 UTC


README

Laravel 的官方本地开发环境。

官方文档 在此处

简介

(来自官方文档)

Laravel 致力于让整个 PHP 开发体验愉悦,包括您的本地开发环境。Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。

Laravel Homestead 是一个官方的预包装 Vagrant 虚拟机镜像,它为您提供了一个无需在本地机器上安装 PHP、HHVM、Web 服务器和其他任何服务器软件的出色开发环境。不再担心破坏您的操作系统!Vagrant 虚拟机镜像可以完全丢弃。如果出现问题,您可以在几分钟内销毁并重新创建虚拟机!

Homestead 可在任何 Windows、Mac 或 Linux 系统上运行,并包括 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node 以及您开发出色 Laravel 应用程序所需的所有其他好东西。

为何创建此分支

在我的项目中使用 Laravel Homestead 时,我需要几乎对一切进行自定义,最终我几乎修改了所有内容。

我在此分支中做了什么

  • 移除了 init.sh 和 init.bat,该脚本只是将一些文件复制到 ~/.homestead,我不喜欢它
  • 将 Homestead.yaml 重命名为 homestead.yml,对我来说更不容易出错,还移除了 Homestead.json,我认为 yaml 格式足够好,并且更适合这些事情,因为它支持注释
  • 使用两种设计模式重构所有代码,一个工厂方法(Homestead.create),它从设置或设置文件名创建 Homestead 对象,Homestead 成为了一个命令,它的执行方法仍然是 configure,但我已经为对象添加了两个属性(设置和配置),所有可以移动到单独方法的代码部分都被移动了,所以不再是单个方法,大约 250 行,而是大约 400 行的小方法。我还创建了用于设置的定制 getter/setter 方法,以减少“||=”的使用来设置默认值,设置设置器成为一种预先验证所有设置的方式
  • 一个新的更小的 Vagrantfile,所有逻辑都移动到了 Homestead 类中,Vagrantfile 中只有 8 行代码,仍然允许在 Vagrantfile 内直接进行更多自定义
  • 此时单个方法可以覆盖到自定义类中,但也可以直接在工厂方法中指定文件和类,因此我可以通过在 homestead.yml 中添加 3 行来覆盖标准的 homestead 类
override:
    file: ‘./config/customHomestead.rb’
    class: ‘CustomHomestead’
  • 禁用了默认端口转发,如果我想启用端口转发,我仍然可以在 homestead.yml 中取消注释它们
  • 将 after.sh 移动到 homestead.yml 中,并添加了两个新列表 before_scripts 和 after_scripts
  • 创建了/编辑了独立的安装/删除脚本,用于安装和删除更多内容,主要安装 Apache 和删除不必要的服务器,使用正确的设置,可以在 nginx 和 Apache 之间切换,只需更改 homestead.yml 并运行 vagrant provision
  • 减少了 apt 命令的噪音,并添加了一些更多的成功和错误消息
  • 改进了网站 vhost 管理,添加了 mode: symlink 和 value: /home/vagrant/…/vhost_dev.conf,vhost 只是添加了一个符号链接
  • Laravel 网站类型现在称为 standard,因为它是一种标准的 PHP 方法:)
  • 添加了对 vagrant-hostmanager 的支持,vagrant-hostsupdater 仍然受到支持
  • 增加了一些enable_*选项,主要用于禁用所有功能:enable_bindfs enable_clear_webserver enable_forward_agent enable_hostmanager enable_update_composer
  • 还增加了对digitalocean的支持,配置过程中仍然遇到了一些与vagrant用户相关的问题,现在有点累:)

为什么我没有提交PR

因为遗憾的是,目前许多设置不再与现有的Laravel Homestead项目向后兼容。

安装

按项目

composer require kernelfolla/homestead --dev php vendor/bin/homestead make vagrant up

全局

git clone https://github.com/kernelfolla/homestead.git cd homestead vagrant up

更新日志

1.0.1

  • 小修
  • 增加了新的安装选项:yarn, prestissimo, mailhog

1.0.0

  • 首次分叉