如何删除composer php中的所有测试?

2024-01-09

我是作曲家开发方面的新手。我刚刚开始在当前的项目中与作曲家合作。我认为我的问题之前已经被问过,或者我对作曲家很菜鸟:D

每个依赖项的供应商中有许多测试文件和目录。我只想在将其上传到服务器之前删除这些测试。

是否有任何命令可以删除这些测试或者我需要手动删除它或者什么......? :'(


是否有任何命令可以删除这些测试或者我需要手动删除它或者什么......? :'(

这是一个有趣的问题。

目前,作为包使用者的您无法自动忽略测试。 下载供应商后,没有 Composer 命令可以清理所有文件夹。要解决此问题,请在应用程序构建过程中清理供应商目录。它是在引导期间对手动选择的文件集执行删除运行,然后上传。这是一个设置步骤,类似于生产的缓存预热或初始数据库设置。无聊的工作:(

之前曾请求并讨论过从供应商文件夹中删除测试文件夹(和其他开发内容)的主题,请参阅 Composer Issues 示例#1750 https://github.com/composer/composer/issues/1750 and #4438 https://github.com/composer/composer/issues/4438.

很多用户都想要这个功能,但不幸的是 Composer 还没有提供它。我想,如果有人投入时间来解决问题,Composer 维护人员会合并排除文件夹(减少功能)。建立标准是一项艰苦的工作。还可以创建一个 Composer 插件来提供此功能。


这样的功能会是什么样子呢?

  1. 解决这个问题的一种方法是为文件提供通用的黑名单/白名单功能,以便在生产中保留composer.json文件。在我看来,仅添加排除部分只能部分解决问题,因为您无法覆盖包中做出的决定。

    • 第一个可能会通过迭代所有composer.json 文件来生成要删除的文件和文件夹列表来构建黑名单。
    • 然后,可以使用主项目中的白名单将黑名单中的内容(=白名单内容)踢出。这是为了覆盖在获取的包中做出的排除决定。
    • 最后,使用黑名单进行供应商文件夹中的删除运行。
    • 这意味着拉动供应商包的项目拥有完全的控制权。这种方法提供了很大的灵活性:如果包提供者将测试文件夹列入黑名单,但包使用开发人员想要保留它,他可以将该包的文件夹列入白名单。但他也可以什么都不做,继续正常的黑名单。

    也许人们也可以尊重export-ignore设置中的.gitattributes当获取 Source 而不是 Dist 时,会获取包的文件。

  2. 另一种方法是专注于自动加载描述。

    作曲家提供require-dev and autoload-dev旁边require and autoload。这意味着我们在开发类和生产类之间有明确的区分。考虑 phpunit 依赖项和您的测试文件夹,定义于require-dev和测试命名空间中定义autoload-dev.

    这使得可以使用自动加载映射并删除未包含在生产的 Composers“自动加载范围”中的所有文件。

    David Grudl (@dg) 在他的作曲家清洁工 https://github.com/dg/composer-cleaner.

    它是实验性的。做一个备份。

关于a的使用.gitattributes文件与export-ignore指示

是的,这是减少 git 档案大小的一种方法,但它从未被 PHP 社区采纳为标准或最佳实践。

Composer 维护者正在推广它的使用(参见 的评论alcohol https://github.com/composer/composer/issues/4438#issuecomment-142860181 and naderman https://github.com/composer/composer/issues/1750#issuecomment-15698801),而例如Symfony 放弃了它的使用 https://github.com/symfony/symfony/issues/6605.

目前尚无关于此问题的最佳实践的明确指南。 因此,我不确定这是否是最佳实践,我们是否应该真正推广或建议这一点。

它的“Dists”,取自composer --prefer-dist.

即使一些开发人员采用这种做法,许多使用 Composer 获取“源”的方法也没有得到考虑:hg、svn、git source。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除composer php中的所有测试? 的相关文章

  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 如何在html中制作多行类型的文本框?

  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 如何在 Zend Framework 中处理移动设备?

    我接手了一个噩梦般的项目 我正在迁移一个写得很差的站点 并慢慢地将其迁移到 Zend Framework 应用程序中 不幸的是 我没有时间做补救工作 使这变得可以忍受 也许是一个或两个模型 我现在被告知该网站很快就会有移动版本 建议是克隆旧
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • getItemAtPosition() 如何从 ListView 中的选定项获取可读数据

    我有一个从 Android ContactManager 示例中获取的联系人列表视图 该列表显示正常 但我不知道如何从所选项目中获取信息 例如 姓名 和 电话号码 我可以获得选定的位置 但 mContactList getItemAtPos
  • 当我们只更新一个属性时,我们应该使用强参数吗?

    我正在开发一个 Rails 应用程序 我有几个操作 delete later ban later 等 其中我只从请求参数中设置一个属性 具体来说 reason执行该操作的字段 我想知道这样做是否可以 def ban later object
  • 转换数据库中嵌入的图片

    我有一个 小 问题 在数据库文档中包含富文本字段 富文本字段包含某个联系人的个人资料图片 问题是这个内容没有保存为 mime 因此我无法计算图像的 url 我正在使用 pojo 从人员配置文件中检索数据 并在我的 xpage 控件中使用它来
  • 编写正则表达式来检测重复字符[重复]

    这个问题在这里已经有答案了 我需要编写一个正则表达式 它可以识别一个具有重复字符集 at the end 根据以下代码片段 重复字符集为An 我需要编写一个正则表达式 以便能够发现并显示它 根据下面的代码 w将匹配任何单词字符 包括数字 字
  • 如何将 Bower 用作 Visual Studio 2013 的包管理器? IE。我有一个 .NET 项目,想要添加一些使用 Bower 的包

    如何将 Bower 用作 Visual Studio 2013 的包管理器 IE 我有一个 NET 项目 想要添加一些使用 Bower 的包 I read 斯科特 汉塞尔曼的帖子 http www hanselman com blog In
  • 数据表添加到数据集

    我需要为数据集设置一个表 DataSet ds EventDal GetEvents DataSet dsReturn new DataSet DataTable dtReturn dsReturn Tables Add dtReturn
  • 子域 Azure WebApp

    这是一个更普遍的问题 我有一个作为 Azure 应用服务运行的网站 我配置了一个自定义域 以便您可以通过以下方式调用它我的网站名称 com 随着客户的要求不断增长 每个客户都有特定的需求 我想知道是否可以为每个客户拥有一个子域 例如 cli
  • pandas + pyodbc ODBC SQL 类型 -150 尚不支持

    我知道这方面有很多主题 但我认为这是非常具体的 我得到用于审计目的的当前代码 import pandas as pd import pyodbc query Top 50 high total CPU Queries SELECT TOP
  • 在 nginx 上为应用程序添加上下文路径

    Nginx 负责从根目录到根 URL 的所有静态内容 例如 如果根内容位置配置为 usr share nginx html其中包含一个文件 usr share nginx html foo html 然后是网址http localhost
  • Zope 冲突错误

    我的网站的 zope 日志报告了许多冲突错误 平均每天120个 其中2 3个未解决 我读过很多关于为什么会发生冲突错误的文章 但没有什么是清楚的 大多数冲突错误发生在对 MySQL 数据库运行选择查询的页面上 据称 随着 http 请求并发
  • 开始 Lua 脚本编写 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正处于被迫学习Lua的阶段 所以你对我如何做到这一点有什么建议吗 除了 PHP 之外 我对其他脚本语言没有太多经验 那么 关于 head
  • django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。 (django 2.0.1)(Python 3.6)

    这是我第一次尝试将 Django 应用程序 django 2 0 1 Python 3 6 部署到 pythonanywhere 它是一个简单的组合应用程序 没有模型 没有引导程序 只需 Django HTML CSS 和 JavaScri
  • 将 prop 传递给样式组件

    我正在尝试找到一种方法来动态创建 居中此 div 组件 这段代码目前可以工作 但有点冗长而且不是很干 const Rel styled div position relative height 100 width 100 const Abs
  • iOS:根据加速度计输出准确确定碰撞能量

    我正在创建一个音叉应用程序 您可以将 iPhone 轻拍到另一只手的手掌上 或者轻拍到柔软的表面上 以设置音叉的声音 所以我想检测每个 凹凸 中包含的能量 编辑 删除了大量的gumpf 谁能帮我破解这个吗 感谢 freenode 的 mat
  • Python 中与 finditer() 的重叠匹配

    我正在使用正则表达式来匹配文本中的圣经经文引用 当前的正则表达式是 REF REGEX re compile q uote s Match optional q or quote followed by many spaces P
  • 如何在 iOS 和 Android 应用程序的 React Native 中禁用字体缩放?

    设备字体大小的放大有时会中断 样式方面 禁用字体缩放可能会损害应用程序的可访问性 理想情况下 如果您想限制使用 React Native 0 58 0 及更高版本的应用程序的缩放 使用maxFontSizeMultiplier prop h
  • HTTP 请求被视为超时的默认时间是多少?

    对于 PHP HTTP 请求被视为超时的默认时间是多少 我正在使用 PECL HTTP 扩展来发出 HTTP 请求 我可以在发出请求时设置超时限制 但是我想知道如果没有明确指定任何内容 默认值是什么 我查遍了 PHP 手册 但没有结果 我希
  • 在android中以编程方式创建vCard文件

    我使用以下代码来读取联系人并创建 vcard 文件 String lookupKey cur getString cur getColumnIndex Contacts LOOKUP KEY Uri uri Uri withAppended
  • TextInputEditText 无法转换为 TextInputLayout

    我的活动中有此代码 public class RegisterActivity extends AppCompatActivity private static final String TAG RegisterActivity class
  • 如何删除composer php中的所有测试?

    我是作曲家开发方面的新手 我刚刚开始在当前的项目中与作曲家合作 我认为我的问题之前已经被问过 或者我对作曲家很菜鸟 D 每个依赖项的供应商中有许多测试文件和目录 我只想在将其上传到服务器之前删除这些测试 是否有任何命令可以删除这些测试或者我