compoer直接从github安装或直接从本地安装

有时候https://packagist.org/上的包并不是最新的,需要自己直接从github安装。或者两个包之间的共同的依赖有冲突,那么可以这样操作。
下面是直接从github安装overtrue/laravel-wechat的例子

1.在composer.json中配置依赖源。

把需要的安装的包手动配置到repositories下,如下所示:

{
    "require": {
        "php": "^8.0.2"
    },
	"repositories": [
        {
            "type": "package",
            "package": {
                "name": "overtrue/laravel-wechat",
                "version": "6.0.1",
                "dist": {
                    "url": "https://github.com/overtrue/laravel-wechat/archive/refs/heads/6.x.zip",
                    "type": "zip"
                }
            }
        }
    ]
}

2.执行安装

composer require  overtrue/laravel-wechat

3.解决自动导入

通过上面的方式安装之后,依赖包已经安装到vendor下面了,可是在使用的时候,你会发现报错,提示找不到对应的class,这是因为,这样的方式安装,composer不会自动导入。如果正常通过require安装的包,composer会自动在vendor/composer/autoload_classmap.php中映射对应的类名和路径。解决这个问题的方式是,手动加入映射。需要特别注意,下面的是类路径,而不是类的命名空间,有的包两者不一致

// composer.json
{
	"autoload": {
	     "classmap": [
	         "vendor/overtrue/laravel-wechat",	     	
	         "vendor/jaeger/querylist",
	         "vendor/jaeger/g-http"
	     ]
	}
}

然后执行

composer autoload-dump

4.其他依赖

对于上面的安装方式,这个被手动安装的包所依赖的其他包不会自动安装,因而需要找到这个包的composer.json,查看该包所依赖的其他包,然后逐个安装。比如上面的laravel-wechat,composer.json如下:

{
	"require": {
	    "illuminate/container": "^5.1 || ^6.0 || ^7.0 || ^8.0 || ^9.0",
	    "overtrue/wechat": "^5.0"
	},
	"require-dev": {
	    "laravel/framework": "^8.5",
	    "friendsofphp/php-cs-fixer": "^3.1"
	},
}

overtrue/wechat不会自动安装,因此需要再次执行composer require overtrue/wechat ,illuminate/container已经安装过了,因此就不需要再次安装了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值