PHP使用github和packagist创建自己的composer工程

最近打算写个自己的应用,放在github上,然后做成自己的composer镜像,这样大家用着就会非常方便了,说干就干,其中简单的步骤就不再赘述,网上有很多的例子。

1.新建一个github的私有工程。

2. 本地使用composer初始化一个工程。(使用composer init初始化,选择psr-4规范),类似的例子如下:

{
    "name": "yingminxing/spider",
    "description": "This package provides a spider to Laravel",
    "license": "MIT",
    "authors": [
        {
            "name": "yingminxing",
            "email": "yingminxing@126.com"
        }
    ],
    "require": {
        "php": ">=5.5.9"
    },
    "autoload": {
        "psr-4": {
            "Yingminxing\\Spider\\": "Src/"
        }
    },
    "minimum-stability": "stable"
}

3.上传github代码,同时https://packagist.org上创建一个帐号。

4.设置github和packagist.org的自动同步,拷贝packagist.org中的token到github的Integration&services里面去。(设计到隐私,大家可以网上查询或者随便就能找到。)

5.绑定关系后就可以在本地使用composer require yingminxing/spider来获取packagelist对应的github上的代码。

6.接下来要说几点个人研究中发现的:

1)一般我们在国内时间使用composer,如果以来仓库选择https://packagist.org时,很多依赖都很慢,所以网上很多建议就是使用的配置是:

{
    "type": "composer",
    "url": "https://packagist.phpcomposer.com"
},
{"packagist": false},

这个意思就是我的源从packagist.phpcomposer.com取就可以了,不用从packagist.org取。因为它是对packagist.org的一个全量镜像,并不是实时同步,具体多久同步一次就不清楚了。所以我们如果要修改自己的github上的文件,即使packagist.org实时同步了对应的版本号之类的,你本地获取仍然是老的代码,因为packagist.phpcomposer.com并未及时同步。经过多次尝试,将本地的依赖源换成

{
    "type": "composer",
    "url": "https://packagist.org"
}

同时使用composer update -vvv命令强制通过packagist.org对应的github上获取最新代码。(困惑了一天,终于在加班回去的路上想明白了,并得到验证,这个问题网上也有人反馈,但是没有人有正确的回复,今天就写在这里,希望看到的人喜欢)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注