在 Ubuntu 上使用 composer 安装 PHPUnit 的好处?

Posted

技术标签:

【中文标题】在 Ubuntu 上使用 composer 安装 PHPUnit 的好处?【英文标题】:Benefits of installing PHPUnit with composer on Ubuntu? 【发布时间】:2017-11-02 15:39:42 【问题描述】:

我正在开发一个 php 网站。我的笔记本电脑上有一个版本,我可以在其中开发所有内容以及运行该站点的 Web 服务器。

我发现我只能使用 composer 在我的笔记本电脑上安装 PHPUnit,而不能使用 "require-dev" 选项 Using "require-dev" to install packages in composer 在我的网络服务器上安装 PHPUnit

但是,这也有一些缺点:

    从现在开始我必须在网络服务器上调用php composer update --no-dev,如果我忘记了--no-dev,那么它也会安装在网络服务器上

    我必须使用$ ./vendor/bin/phpunit来调用phpunit

    我必须在我的笔记本电脑上为每个项目安装 phpunit。

在 Ubuntu sudo apt-get install phpunit 上安装 phpunit 不是更好吗?这样我就不必担心在服务器上使用--no-dev 选项,我可以简单地通过$ phpunit 调用它。我在这里遗漏了什么重要的东西吗?

【问题讨论】:

不要在生产环境中运行composer update。您可能想要安装依赖项,而不是更新它们。运行composer install --no-dev 【参考方案1】:

我通常在 'require-dev' 部分安装phpunit 和其他工具,但另一个完全合理的选择是从网站下载 phpunit.phar 文件,并将其与您的其余代码一起检查 -偶尔手动更新一下。

本地(或全局)Composer 安装将允许更好地控制确切可用的版本,并且您可以看到它何时或您的其他依赖项已过期 composer outdated

对于生产部署,您应该尽可能实现自动化,以确保每次都发生完全相同的事情。这样,它只是您的部署脚本或其他机制中的另外几个字符。

【讨论】:

【参考方案2】:

快速回答是:

    您可以在您的项目中使用您想要的phppunit 版本,在另一个中使用另一个版本。并且--no-dev 无论如何都应该在生产中使用,因为您不想在生产中安装所有开发依赖项 如果您不想调用 ./vendor/bin/phpunit,请将脚本添加到您的 composer.json,然后通过 composer test 或您创建的任何内容运行测试 在第一个解释。这真的很有意义,尤其是当您使用一些仅适用于某些特定版本的 php/phpunit 等的遗留代码时。

【讨论】:

以上是关于在 Ubuntu 上使用 composer 安装 PHPUnit 的好处?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu 20.04上安装Docker Compose

在ubuntu上安装curl以使用hirak / prestissimo和composer

sh 在ubuntu上安装composer

Ubuntu14.04上安装Composer

ubuntu:如何使用 sudo 使用 composer 安装私有存储库

Ubuntu上的Hyperledger composer CLI安装问题