相关疑难解决方法(0)

从供应商目录贡献开源包?

理想情况

通常在处理Symfony2项目时,我会发现我想要在其中一个依赖项中更改的内容.如果我能找到一种方法来简单地在供应商中更改它,然后轻松地将更改作为拉取请求推送,那么我可能会更频繁地做出贡献(而不是用本地子包覆盖该部分).

问题

如果没有作曲家在下次更新时吓坏我,我无法更改供应商目录.如果我提交拉取请求,那么可能需要一段时间才能真正使用供应商中的代码,这实际上是对我的新功能的贡献.

我现在怎么做

我通常贡献一个包的方式是制作一个fork,将fork放入一个准系统symfony标准版应用程序,进行更改,然后提交一个pull请求.

把叉子放进去composer.json

我能想到的唯一解决方案是删除我正在编辑的包的packagist依赖,然后从github包含我的fork与composer(作为包).这样我立即得到我的代码,仍然可以贡献.

这是唯一的解决方案吗?你怎么做呢?

任何在同一时间处理不同项目时为捆绑做出贡献的提示/建议将不胜感激!

symfony composer-php

23
推荐指数
3
解决办法
4991
查看次数

作曲家 - 找不到匹配的包

我有一个我已经构建的PHP框架,我正在尝试将所有内容分成不同的repos并将其设置在composer中以使我的生活更轻松.

基本上,我有3个repos问题:一个用于集合类,用作集合数据类型的基类("liftkit/collection"),另一个是输入变量的包装器("liftkit/input",它依赖于集合repo),以及核心的第三个("liftkit/core",它取决于输入包装器.

当我运行composer update"liftkit/input"时,它会安装"liftkit/collection"并且工作正常,但是当我在"liftkit/core"上运行时,它会给我以下错误:

问题1 - liftkit/input @dev的安装请求 - >可通过liftkit/input [dev-master]来满足. - liftkit/input dev-master需要liftkit/collection dev-master - >找不到匹配的包.

这是我的composer.json文件:

{
    "name": "liftkit/collection",
    "description": "LiftKit base class for collections",
    "license": "LGP-2.1",
    "autoload": {
        "psr-4": {
            "LiftKit\\": "src/"
        }
    },
    "require": {
    },
    "require-dev": {
        "phpunit/phpunit": "4.5.*"
    }
}

{
    "name": "liftkit/input",
    "description": "LiftKit input wrappers",
    "license": "LGP-2.1",
    "autoload": {
        "psr-4": {
            "LiftKit\\": "src/"
        }
    },
    "require": {
        "liftkit/collection": "dev-master"
    },
    "require-dev": {
        "phpunit/phpunit": "4.5.*"
    },
    "repositories": [
        {
            "type": "git", …
Run Code Online (Sandbox Code Playgroud)

git composer-php

9
推荐指数
1
解决办法
3434
查看次数

在composer依赖项中使用包fork

我正在开发一个laravel包(我们称之为包A),它需要另一个包(包B https://github.com/dropbox/dropbox-sdk-php).

我已经制作了一个包B的分支(https://github.com/EmilioBravo/dropbox-sdk-php),在一个新的分支"fix64"中做了一些更改,并将我的GitHub repo添加为composer.json中的一个存储库.包装A,如作曲家文档中所示:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/EmilioBravo/dropbox-sdk-php"
    }
],
"require": {
    "php": ">=5.4.0",
    "illuminate/support": "4.2.*",
    "dropbox/dropbox-sdk": "dev-fix64"
},
Run Code Online (Sandbox Code Playgroud)

如果我从包A中调用composer update它会正确地下载我的fork,但是,如果我在另一个项目(Project C)中使用包A作为依赖项并从中调用composer update,那么composer说它找不到dev-fix64 .

问题1

- emilio-bravo/platform dev-dropboxfix requires dropbox/dropbox-sdk dev-fix64 -> no matching package found.
Run Code Online (Sandbox Code Playgroud)
  • emilio-bravo/platform dev-dropboxfix需要dropbox/dropbox-sdk dev-fix64 - >找不到匹配的包.

  • emilio-bravo/platform dev-dropboxfix的安装请求 - > emilio-bravo/platform [dev-dropboxfix]可满足.

只有当我在项目C composer.json中添加我的repo作为存储库时,它才会找到我的fork的分支.

另一种方法是我发现将我的叉子克隆到满意的存储库中.

但感觉不对.我怎样才能让作曲家从GitHub找到我的前叉?

php git github composer-php

5
推荐指数
1
解决办法
657
查看次数

我如何为第三方Symfony捆绑包做出贡献?

我正在尝试为捆绑添加缺少的功能.这是我到目前为止所做的:

  • 向项目业主发言并获得他们的批准
  • 创建一个fork并将其本地克隆到我项目之外的目录中
  • 做了一个功能分支
  • composer install

现在,问题是,如何将它包含在我自己的Symfony项目中以便自动加载?我想在发送拉取请求之前在自己的项目中测试我的更改.

php symfony composer-php

5
推荐指数
1
解决办法
254
查看次数

通过Github分支加载作曲家程序包

我在Github上派生了一个库,现在想将我的fork加载到项目中,而无需将派生的库添加到packagist中。添加存储库后出现以下错误,并要求将其添加到composer.json:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package cnizzardini/ssl-certificate could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Run Code Online (Sandbox Code Playgroud)

这是我完整的composer.json

{
    "name": "cakephp/app",
    "description": "CakePHP skeleton app",
    "homepage": "http://cakephp.org",
    "type": "project",
    "license": "MIT",
    "require": …
Run Code Online (Sandbox Code Playgroud)

composer-php

5
推荐指数
1
解决办法
1067
查看次数

标签 统计

composer-php ×5

git ×2

php ×2

symfony ×2

github ×1