为了账号安全,请及时绑定邮箱和手机立即绑定

Composer (PHP) 如何融入 Docker 工作流程?

Composer (PHP) 如何融入 Docker 工作流程?

PHP
jeck猫 2023-08-06 10:37:46
我希望了解将 Composer (PHP) 融入我的 Docker WordPress 开发工作流程的最佳实践。我刚刚开始使用 Docker 以及 Composer 进行 PHP/WordPress 开发。这是一个有点陡峭的学习曲线,但就我阅读了大量指南和教程而言,这一切似乎都是有意义的。我已经使用了 Docker,并且(我认为)对如何/为什么使用它有很好的理解。我知道 Docker 的一个好处是我不需要修改我的主机操作系统,即安装 PHP 和 Composer,而且它使移动变得很容易,因为它包含了所需的一切。许多教程似乎在主机操作系统上安装了 Composer 和 PHP,因为设置项目的第一步是使用 Composer 在主机操作系统上拉取诸如 Roots Bedrock 之类的东西,然后使用该目录作为 Docker 中的卷。据我所知,到目前为止,这不是最好的方法,因为我正在修改主机操作系统,并且项目容器不包含运行所需的所有内容。我对更好方法的最佳猜测是一个专用的 Composer 容器,它将我的整个项目目录(包含我所有不同的项目)作为一个卷。然后,我可以在该容器中的适当项目目录上运行 Composer 命令。我的症结在于,每个项目容器并不包含运行(Composer)所需的所有内容。所以我的下一个想法是每个项目都应该有一个自己的 Composer 容器。这将导致每个项目都有以下容器:WordPress 官方镜像、MariaDB、phpMyAdmin、Composer。我不确定这是否会导致每个项目都使用 4 个容器?如果有人能够就执行此操作的最佳实践方法以及原因提出建议,我将非常感激!谢谢!:)
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

在本地项目wp主题目录中,运行包安装命令...

composer require nesbot/carbon

然后,这将在您的主题目录中创建这些文件和文件夹(不是 .gitignore 文件)

https://img1.sycdn.imooc.com/64cf08030001b4e101940249.jpg

您可以使用此方法安装任意数量的软件包。


如果你查看该composer.json文件,你会看到这个 json 数组......


{

    "require": {

        "nesbot/carbon": "^2.36"

    }

}

因此,如果您想删除 Composer 包,只需vendor/package从 json 数组中获取密钥并像这样运行它......


composer remove nesbot/carbon

理想情况下不要手动编辑该composer.json文件。使用 Composer 命令来构建此文件。


现在您已经安装了一些作曲家软件包,您需要将它们加载到您的主题中。


在functions.php顶部或您打算调用包之前的任何位置,添加此 php 代码...


// load our composer autoloader

require 'vendor/autoload.php';

该autoload.php文件是通过 Composer 生成的,并加载所有已安装的包和包依赖项,


现在您可以像这样在主题 php 中使用包...(Netspot Carbon示例)


use Carbon\Carbon;


$time = Carbon::createFromTimestampMs($cart['updated']['time'],'Asia/Dubai');

此外,您永远不需要将文件上传composer.json到composer.lock您的服务器。您只需要部署该vendor文件夹。


并且您永远不需要提交vendor文件夹,您只需要提交composer.json. 有了这个 json 文件,您可以使用此命令轻松地重新构建vendor文件夹和composer.lock文件...


composer install

...将项目拉到另一台计算机时很方便。


供应商文件夹可能非常重,并且对其进行版本控制(git)毫无意义,因为它composer.json保存了当前的包版本。


查看完整回答
反对 回复 2023-08-06
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信