2016-12-16 80 views
1

有些东西我不明白使用Composer。要清楚,我正在使用Windows 10和wampstack软件包。使用Composer时文件过多?

内..wampstck .. \ PHP我擦任何现有的文件夹\供应商

对于一个项目,我下载checkdomain /假期从Packagist。然后,我将\ vendor发送到apache2 \ htdocs,最后通过FTP将其它文件和其他 文件转移到一切正常的外部网站。

然后我为另一个包phpmailer/phpmailer做了完全相同的操作。但是,在这种情况下,供应商不仅包含邮件的文件,还包含早几个星期没有触及的checkdomain/holiday。

看来,\供应商现在包含子文件夹\ composer,\ phpmailer和\ checkdomain。后两个子文件夹包含一个文件composer.json,其中明确包含与该项目相关的材料,而不包含其他内容。然而

\供应商\作曲家含有一种叫installed.json是指PHPMailer的,checkdomain文件(和,说实话,我刚才看了一下所有其他包)

我有两个问题:

  1. 如果我在Packagist中通过在命令提示符下书写 > Composer需要phpmailer/phpmailer,然后在我打电话给文件夹\ C:.... \ php \ vendor之后,系统如何知道任何关于,并且它应该下载\ checkdoain软件包。

  2. 我清楚地知道有关该项目不需要的网站信息。我FTP \供应商的网站,但它包含一个 文件夹\作曲家,这个文件名为installed.json其中包含有关以前的项目和不需要的信息。

回答

3

您项目的依赖项,类映射和其他定义存储在项目的composer.json文件中。当您在项目根目录下并输入composer require package时,composer.json文件将更新为新的需求。要回答你的第一个问题,这个依赖关系可能仍然存在于你的项目的composer.json文件中,或者它作为phpmailer的composer.json文件依赖项存在。

当前已安装的包被跟踪在composer.lock,这样你就可以复制composer.lockcomposer.json到一个新的环境,并键入composer install安装相同版本的包。理想情况下,您可以这样做,而不是将供应商文件夹复制到新环境中(前提是您的FTP访问权限不止)。

我认为你是在反思这件事情,让Composer管理软件包,不要手动管理文件。 Composer的要点是为您管理软件包及其依赖关系。要回答第二个问题,为什么转移一些额外的小文件很重要?就好像你为自己创造了不必要的头痛。

总之,不要删除或修改供应商目录中的文件。删除依赖项的方法是通过命令行工具:composer remove package或编辑composer.json并使用composer update更新。

相关问题