为了账号安全,请及时绑定邮箱和手机立即绑定

[已解决]composer不能引入本地的三方代码?

[已解决]composer不能引入本地的三方代码?

PHP
慕运维8079593 2019-03-10 05:42:11
引入本地包时是需要在repositories依赖里填写完整的包路径(包composer.json的相对目录),而不是只填写包目录所在位置, 所以我把主项目的composer.json改成这样就好了: "repositories": { "upacpsdk": { "type": "path", "url": "local3rdpackages/upacp" //<---这里不能只写local3rdpackages,而要写本地包完整路径 }, "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } 最后执行下require就可以了: composer require upacp/sdk:dev-master -vvv =======下面是原问题描述========= 我要引入银联的sdk,于是写了下面这种目录结构: 这里local3rdpackages目录是与主项目的composer.json在同一个目录级别下,我给三方库添加的composer.json文件代码如下(主要是为了inlcude acp_service.php文件) { "name": "upacp/sdk", "autoload": { "files": [ "acp_service.php" ], "extra": { "branch-alias": { "dev-master": "1.0-dev" } } } } 主项目的composer.json文件里导入local3rdpackages目录下包的代码如下 "repositories": { "0": { "type": "path", "url": "local3rdpackages/*/*", "options": { "symlink": false } }, "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } 但是还是没有效果啊,我应该怎么做?
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

原来是新版本composer的path类型. 刚看完文档.

查看完整回答
反对 回复 2019-03-18
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

执行composer dump-autoload
然后查看/vendor/composer/autoload_files.php中生成的文件映射是否正确
查看完整回答
反对 回复 2019-03-18
?
慕森王

TA贡献1777条经验 获得超3个赞

    "autoload": {
        "psr-4": {
            "App\\Controller\\": "app/controller",
            "App\\Model\\": "app/model"
        }, //自动加载规范。key为项目中引用类时的namespace,value为自定义类namespace。要注意key中需要两个\\
        "files":["app/controller/index.php"], //引入单个文件
        "classmap":["app/controller"] //引入文件夹下所有文件
    }

以上三中方式都可以映入自定义类或者函数。
然后在执行 composer update

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 620 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信