在Bitbucket上分发我的php库的正确方法

时间:2015-11-15 19:20:06

标签: php composer-php bitbucket

我对使用Composer和Bitbucket关于我的库分发的正确方法感到困惑,可能是因为我是Composer和Bitbucket的新手。

我的问题是:我在Bitbucket上有两个存储库,第一个是简单的实用程序库(Utility),第二个是主项目(MainProject)。两者都有一个分支,即主分支。

我想在MainProject中使用Utility,所以我写了两个composer.json。

Mainproject composer.json:

{
    "require": {
       "vendor/utility": "*"
     },
    "repositories": [
        {
            "type": "vcs",
            "url":  "https://MyUsername@bitbucket.org/MyUsername/utility.git"
        }
    ]
}

Utility composer.json:

{
    "name": "vendor/utility",
    "autoload": {
        "psr-4": {
            "Vendor\\": "src/"
        }
    }
}

这个配置完美无缺,我的意思是,如果我在MainProject上启动'composer install',就可以正确克隆Utility。但是在MainProject的vendor目录中,我获得了所有的Utility文件,包括测试目录和phpunit.xml等无用的文件。

我尝试使用此处提供的解决方案:https://www.reddit.com/r/PHP/comments/2jzp6k/i_dont_need_your_tests_in_my_production/,我通过Sourcetree创建了存档,但之后?我该如何使用这个档案?我怀疑我错过了一些基本知识。

如果我想通过composer将Utility作为一个包也用于其他应用程序,但没有它的测试和其他文件,这是正确的方法吗? 我应该使用.gitattribute还是有一种简单的方法来创建dist版本?我不明白怎么处理Bitbucket,也许是因为我是新手。

一点帮助?

1 个答案:

答案 0 :(得分:0)

我知道情况看起来有点令人不满意,但Reddit主题“我不需要在我的作品中进行测试”只是故事的一个方面。另一方面是“我需要在部署前检查中进行测试,以验证您的代码是否与我的一样有效”。

所以有两个相互矛盾的愿望:要么没有测试,要么有它们。

Composer无法为您解决此问题。如果您不喜欢该过程获得的文件,则可以编写一个脚本,在将项目置于实际状态之前删除它们。

目前没有通过Composer计划的自动帮助,因为对于那些需要较少文件的人来说,在composer install之后删除它们比在其他方面更容易删除它们。