Composer php 我应该将composer.json文件放在哪里?

Composer php 我应该将composer.json文件放在哪里?,composer-php,Composer Php,我正在尝试将composer用于一个库,在文档中,他们告诉我在我的composer.json文件(require:xxxx)中放一行,但项目中已经存在一个composer.json文件 我试着阅读有关composer的文档,他们说要把文件放在主文件夹中。但是已经有一个composer.json文件 当我输入我需要的(setasign/fpdi fpdf):“^2.0”)时,我得到了这个错误(我得到了与命令composer require setasign/fpdi fpdf相同的错误): 我对c

我正在尝试将composer用于一个库,在文档中,他们告诉我在我的
composer.json
文件(
require:xxxx
)中放一行,但项目中已经存在一个
composer.json
文件

我试着阅读有关composer的文档,他们说要把文件放在主文件夹中。但是已经有一个
composer.json
文件

当我输入我需要的(
setasign/fpdi fpdf):“^2.0
”)时,我得到了这个错误(我得到了与命令
composer require setasign/fpdi fpdf
相同的错误):

我对composer不太熟悉,所以我不知道如何处理这个错误

我的
composer.json
文件如下所示:

{
    "name": "setasign/fpdi",
    "homepage": "https://www.setasign.com/fpdi",
    "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
    "type": "library",
    "keywords": [
        "pdf",
        "fpdi",
        "fpdf"
    ],
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "setasign\\Fpdi\\": "src/"
        }
    },
    "require": {
        "php": "^5.6 || ^7.0",
        "ext-zlib": "*"},
    "authors": [
        {
            "name": "Jan Slabon",
            "email": "jan.slabon@setasign.com",
            "homepage": "https://www.setasign.com"
        },
        {
            "name": "Maximilian Kresse",
            "email": "maximilian.kresse@setasign.com",
            "homepage": "https://www.setasign.com"
        }
    ],
    "suggest": {
        "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
        "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
        "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
    },
    "require-dev": {
        "phpunit/phpunit": "~5.7",
        "setasign/fpdf": "~1.8",
        "tecnickcom/tcpdf": "~6.2"
    },
    "autoload-dev": {
        "psr-4": {
            "setasign\\Fpdi\\": "tests/"
        }
    }
}
我也在图书馆问题上寻求帮助,有人回答我:

为什么要使用FPDI的composer.json? 当然,您需要创建自己的:

这就是为什么我没有真正理解它。(他后来没有回答我,所以我才在这里)

我是否应该覆盖现有的
composer.json
文件?
或者我应该把文件放在另一个地方?

您的项目中应该有一个composer.json文件,您应该向其中添加新的依赖项。但不是在随机的地方,它应该在节内

因此,如果旧的
composer.json
如下所示:

{
    "require": {
        "some-old/dependency": "1.0.*"
    }
}
添加新的依赖项后,它应该如下所示:

{
    "require": {
        "some-old/dependency": "1.0.*",
        "new/dependency": "^1.6"
    }
}
其中,
^1.6
是要安装的依赖项的版本


如果您不知道如何编辑
composer.json
,可以使用composer命令执行此任务:

composer require new/dependency

它将自动向您的
composer.json
添加依赖项并安装它。它还将为最新版本的依赖项选择约束,因此这可能是实现所需操作的最简单方法。

您的项目中应该有一个composer.json文件,并且应该向其中添加新的依赖项。但不是在随机的地方,它应该在节内

因此,如果旧的
composer.json
如下所示:

{
    "require": {
        "some-old/dependency": "1.0.*"
    }
}
添加新的依赖项后,它应该如下所示:

{
    "require": {
        "some-old/dependency": "1.0.*",
        "new/dependency": "^1.6"
    }
}
其中,
^1.6
是要安装的依赖项的版本


如果您不知道如何编辑
composer.json
,可以使用composer命令执行此任务:

composer require new/dependency

它将自动向您的
composer.json
添加依赖项并安装它。它还将为最新版本的依赖项选择约束,因此这可能是最简单的实现方法。

问题一点也不复杂,我只是不知道我必须将依赖项独立于库中的依赖项,放在我自己的
composer.json
文件中


谢谢罗布的帮助

问题一点也不复杂,我只是不知道我必须将依赖项放在我自己的
composer.json
文件中,独立于库中的文件


谢谢罗布的帮助

你是如何安装这个软件包的?您不应该编辑依赖项的
composer.json
,您应该在项目中拥有自己的
composer.json
。就是这样!我不知道我必须在我的项目中创建自己的composer.json文件,非常感谢!如果您已解决此问题,请将帮助您的答案标记为已接受,或添加您自己的答案,描述您如何解决此问题并接受它。由于这一点,其他人将能够很容易地看到您的问题得到了解决。请参阅,您是如何安装此软件包的?您不应该编辑依赖项的
composer.json
,您应该在项目中拥有自己的
composer.json
。就是这样!我不知道我必须在我的项目中创建自己的composer.json文件,非常感谢!如果您已解决此问题,请将帮助您的答案标记为已接受,或添加您自己的答案,描述您如何解决此问题并接受它。由于这一点,其他人将能够很容易地看到您的问题得到了解决。看到和