composer使用Git私有化仓库

in 技术分享 / 0 评论 / 390阅读

在写PHP程序的时候,有自己写Composer私有包然后再使用,我也是通过摸索后,也学会了使用Composer加载git仓库。

创建Composer包

我们创建自己的Composer包,先创建一个空目录,输入初始化命令后,Composer会引导我们进行创建包。

composer init 

输入包名,格式为你的名字/项目名称,如我的:snow/newcomposer,回车后输入包描述,再下一步输入作者和邮箱,格式为:姓名 <邮箱>

This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [snow/newcomposer]:
Description []: Composer Test
Author [user <email>, n to skip]: snow <test@61os>

输入最低稳定运行版本,可选值为stable、RC、beta、alpha、dev;输入包类型,一半为library;下一项为开源协议,没有都可以为空。

Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []:

设置包依赖环境,如php版本或依赖于其他包,我没有直接跳过;最后是设置psr-4自动加载路径,默认在src目录下即可

Would you like to define your dependencies (require) interactively [yes]? 
Would you like to define your dev dependencies (require-dev) interactively [yes]? 
Add PSR-4 autoload mapping? Maps namespace "Snow\Newcomposer" to the entered relative path. [src/, n to skip]:

完成以上操作后会显示配置文件,核对信息没有问题填个yes就完成了

{
    "name": "snow/newcomposer",
    "description": "Composer Test",
    "type": "library",
    "autoload": {
        "psr-4": {
            "Snow\\Newcomposer\\": "src/"
        }
    },
    "authors": [
        {
            "name": "snow",
            "email": "test@61os"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes

完成后会生成以下目录及文件

Composer项目文件

接下来我们写个测试文件,创建文件src/TestFile.php,写上命名空间,根据psr-4规范,类名和文件名相同

<?php
namespace Snow\Newcomposer;
class TestClass{
    function test(){
        echo 'Test...';
    }
}

然后在根目录下创建index.php文件,测试一下是否能正常加载运行。

<?php
use Snow\Newcomposer\TestClass;

require "vendor/autoload.php";
$t = new TestClass();
$t->test();

通过以上教程,Composer包基本创建完成,然后按照自己的需求编写类。

上传到Git仓库

初始化本地仓库;将本目录添加到暂存区,然后再将暂存区内容添加到本地仓库中。

git init
git add .
git commit -m "this is new commit"

然后将本地仓库上传到Git服务器

git remote add origin https://github.com/.../composertest.git
git push -u origin master

将仓库上传到远程仓库后,在releases页面,添加版本发布,左上角的Choose a tag添加一个新版本号,如1.0或1.0.1之类的。

添加Tag

添加到项目

打开composer.json,找到repositories添加仓库地址

{
    ...
    "repositories": [
        {
            "type": "vcs", 
            "url":  "https://github.com/.../composertest.git"
        },{
            "type": "vcs", 
            "url":  "https://github.com/<username>/alipay.git"
        }
    ],
    ...
}

第二步可以通过composer直接加载或者修改composer.json文件后更新加载
通过composer加载

composer require <username>/composertest
composer require <username>/alipay

或者通过修改配置文件,后面版本号为tag版本号

{
    ...
    "require": {
        ...        
        "<username>/composertest": "^1.1",
        "<username>/alipay": "^1.0"
        ...
    },
    ...
}

修改配置文件后,执行以下命令安装组件即可使用。

composer update
回复