magegyver / m2devbox
🚀 快速创建 Magento 2 开发环境。
Requires
- php: ^7.4||^8.0
- ext-curl: *
- ext-json: *
- ext-posix: *
- aeno/php-slickprogress: ^1.0.0
- sebastian/version: ^3.0
- symfony/console: ^5.2
- symfony/filesystem: ^5.2
- symfony/polyfill-uuid: ^1.22
- symfony/process: ^5.2
- vlucas/phpdotenv: ^5.2
Requires (Dev)
- phpunit/phpunit: ^9
- vimeo/psalm: ^4.4
README
m2devbox 的目标是加速设置 Magento 2 开发环境。
如果你正在开发一个 Magento 2 模块,并希望在多个 Magento 版本中快速测试它,你只需启动你喜欢的 Magento 版本,你的模块(s)将自动在其中可用!
m2devbox 不用于创建生产 Magento 2 Docker 设置。
📝 要求
- Docker 17.05+
- PHP ^7.4||^8.0
- php-zlib
m2devbox 可以利用最新的 BuildKit Docker 后端,这会带来更快的构建过程和更小的 Docker 镜像。如果 m2devbox 发现 Docker Engine 18.09 或更高版本,它将自动使用 BuildKit。
🛠️ 安装
m2devbox 以 PHAR 文件或 Composer 包的形式提供。您可以在项目本地使用它,也可以全局安装它。
推荐:全局 PHAR 安装
wget https://github.com/MageGyver/m2devbox/releases/latest/download/m2devbox.phar chmod u+x m2devbox.phar mv m2devbox.phar /usr/local/bin/m2devbox m2devbox status
将最新的 PHAR 发布版下载到您的本地计算机上,并将其移动到可以通过 $PATH 访问的某个目录中。移动时可能需要超级用户权限。
sudo mv m2devbox.phar /usr/local/bin/m2devbox
现在您可以在任何地方运行 m2devbox。
本地 PHAR 安装
wget https://github.com/MageGyver/m2devbox/releases/latest/download/m2devbox.phar php m2devbox.phar status
将最新的 PHAR 发布版下载到您的当前工作目录,并立即使用它。
本地 Composer 安装
composer require magegyver/m2devbox php vendor/bin/m2devbox status
在您的本地项目中需要 magegyver/m2devbox 并从 vendor/bin/ 目录中运行它。
🧰 工作流程
使用 m2devbox,您可以快速启动一个 Magento 2 实例,并在其中开始开发和测试 Magento 2 扩展。
m2devbox 有两个主要用例
创建一个新的空白模块并启动一个合适的 Magento 2 实例。
这是 m2devbox 的主要用例,如果您想开始构建一个新的模块并需要一个可工作的 Magento 2 环境时,这将非常有用。
m2devbox 将在您的当前工作目录中创建一个空白的 Magento 2 模块。然后它将在宿主系统的缓存目录(即 ~/.cache/m2devbox)中创建一个纯净的 Magento 安装,构建一个包含此安装的 Docker 设置,并将您的新的模块挂载到 app/code/。
启动一个纯 Magento 2 实例。
如果您已经有一个或多个模块,并希望在任何给定的 Magento 2 实例中测试它们,这种模式适合您。
m2devbox 在宿主系统的缓存目录(即 ~/.cache/m2devbox)中创建一个纯净的 Magento 2 安装,构建一个包含此安装的 Docker 设置,并将 ./app_code/ 挂载到容器的 Magento app/code/ 目录。
💻 使用方法
创建一个新空白模块并启动一个合适的 Magento 2 实例
- 创建一个空的工作目录,并在其中执行
m2devbox start-module - 回答一些关于您模块的基本问题(例如名称和所需的 Magento 2 版本)。
- 等待片刻,m2devbox 创建空白模块并启动您的 Magento 2 实例。☕
- 将
127.0.0.1 m2.docker添加到您的/etc/hosts文件中,以便能够访问您的站点。 - 导航到 http://m2.docker:8080 并查看您的模块在实际运行中的效果!
仅启动一个Magento 2实例
- 导航到您机器上的某个项目目录。
- 创建一个
app_code/目录。此目录将被挂载到您的Magento 2实例的app/code/目录中,并包含所有模块源代码。 - (可选) 在您的项目目录根目录下创建一个
.env文件以自定义m2devbox的设置(见下文)。 - 以您想要的Magento 2版本启动一个实例:
m2devbox start 2.4.2 - 将
127.0.0.1 m2.docker添加到您的/etc/hosts文件中,以便能够访问您的站点。 - 导航到 http://m2.docker:8080 并查看您的模块在实际运行中的效果!
🔨 自定义.env设置
您可以通过在.env文件中定义变量来自定义m2devbox的一些方面。在您的项目文件夹中创建一个名为.env的纯文本文件,并将您想要使用的每个变量放在新的一行中。为每个变量分配一个值,使用=(没有空格)分隔变量和值。
🎓 CLI命令参考
检查正在运行的实例
m2devbox [status]
不带参数运行m2devbox或带有status参数时,会显示已构建和当前正在运行的实例的概述。
创建一个空白模块
m2devbox start-module [options]
此命令在指定的项目目录中创建一个空的Magento 2模块,只包含基本的registration.php和etc/module.xml文件。
根据您提供的选项,m2devbox将创建一个预配置了官方Magento 2 PhpStorm插件设置的PhpStorm项目文件夹(.idea/)。
您可以通过命令行参数提供这些选项,或者在没有参数运行命令时交互式回答问题。
启动当前项目的默认实例
m2devbox start
要启动当前工作目录的.env文件中配置的Magento 2实例,只需运行不带显式版本字符串的m2devbox start即可。
启动特定版本的Magento
m2devbox start <version>
要启动特定的Magento 2实例,只需将所需的版本作为m2devbox start参数提供。
如果尚未存在此版本的实例,m2devbox将自动为您下载和安装它。您可以在m2devbox为您设置好一切时,泡一杯咖啡或简单地查看进度指示器。
如果已启动此版本的实例,它将被停止并重新启动。
停止当前运行的实例
m2devbox stop
此命令停止当前运行的Magento 2实例(同一时间只能运行一个实例)。
清除实例
m2devbox clear [options] [<versions>]
此命令停止指定的实例并删除相关的Magento 2源文件和数据库。
在实例内运行CLI命令
m2devbox cli [<container>] [<command>]
此命令在已启动的容器内运行CLI命令。如果您不带任何参数运行m2devbox cli,将为您启动一个位于web容器内的新的bash会话。这主要用于您想运行不同的Magento CLI命令,如bin/magento cache:clean。
👍 支持的Magento版本
- 2.3.4, -p2
- 2.3.5, -p1, -p2
- 2.3.6, -p1
- 2.3.7, -p3
- 2.4.0, -p1
- 2.4.1, -p1
- 2.4.2, -p1, -p2
- 2.4.3, -p1, -p2
- 2.4.4
⚖️ 许可证
m2devbox受Mozilla公共许可证,第2.0版的许可。
