Php 我应该用GIT发送我的composer供应商目录吗
我想使用composer为我的单元测试生成的自动加载程序来自动加载类 现在我不知道我是否应该将我的供应商目录提交给我的git repo。专业的做法是,每个立即克隆我的回购协议的人都可以运行phpUnit测试。一个缺点是我在回购协议中附带了很多专有代码 我是否应该坚持克隆我的repo的用户必须首先运行Php 我应该用GIT发送我的composer供应商目录吗,php,github,phpunit,composer-php,vendor,Php,Github,Phpunit,Composer Php,Vendor,我想使用composer为我的单元测试生成的自动加载程序来自动加载类 现在我不知道我是否应该将我的供应商目录提交给我的git repo。专业的做法是,每个立即克隆我的回购协议的人都可以运行phpUnit测试。一个缺点是我在回购协议中附带了很多专有代码 我是否应该坚持克隆我的repo的用户必须首先运行composer install,因此必须“安装”composer 不将供应商目录提交到我的git repo中,而是将其打包到发布分支中,这样我的应用程序就可以开箱即用,这是一种解决方案吗?问题是忽略
composer install
,因此必须“安装”composer
不将供应商目录提交到我的git repo中,而是将其打包到发布分支中,这样我的应用程序就可以开箱即用,这是一种解决方案吗?问题是忽略供应商/
:
提示:如果您在项目中使用git,您可能需要将供应商
添加到您的.gitignore
中。您确实不想将所有这些代码添加到存储库中
请确保同时包含
composer.json
和composer.lock
文件。不要发货,每个人都应该使用composer安装。这解决了它们的依赖关系,您无法预测它们。因此,即使我没有随repo一起提供供应商
目录,我是否应该链接到我的phpunit.xml
中的供应商/autoload.php
?顺便说一句,对落选的选民:我讨厌开车经过落选的选票!请至少留下一条评论,为什么我的问题有问题。你可以这样做,不用担心。对于code composer的首次推出,安装是必需的,因此类将在那里。您甚至可能应该在composer.json文件中包含PHPUnit作为开发依赖项。如果您不这样做,您将默默地假设,无论谁想要运行您的测试,都将安装PHPUnit。这与假设安装了Composer完全相同。如果Composer在您需要部署时不可用,该怎么办?如果它被破解,恶意代码进入库怎么办?@Meglio,编写人员建议在部署时让它可用。但是如果你因为某种原因不能做到,你就必须以其他方式获得依赖关系。请阅读。我真的不确定你的“破解和恶意代码”评论在这里的相关性。你担心在生产和开发中使用不同版本的库吗?在公共存储库中发现恶意代码的情况时有发生,CDN资源等。在部署时依赖第三方资源从中获取代码片段可能会违反各种合规性。Re“compose unavailable”,我的意思是存储库本身处于脱机状态——这只是另一个风险。@Meglio,没有人告诉你你无法跟踪你的供应商/
目录。是的,就像几乎所有的科技选择一样,存在着权衡。我只是简单地告诉你这个项目的官方建议。这就是Composer的设计用途。(非官方的建议在这里是离题的,因为它们主要是基于意见的。)在任何情况下,大多数依赖关系管理器,包括Composer,都内置了完整性检查。看看composer.lock
:它列出了确切的版本和校验和。例如,请看。@Meglio,这是解释问题并保持话题的唯一方法。但看起来你是在试图找到一些巩固你地位的东西,而不是学习一些东西。在这里争论会适得其反。如果您想建议其他解决方案,请随意添加您自己的答案。如果你这样做,请花时间考虑,并描述你的战略的缺点,而不仅仅是利益。再次,这一决定有权衡,重要的是要考虑它们。