鍍金池/ 問答/PHP/ [已解決]composer不能引入本地的三方代碼?

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

引入本地包時是需要在repositories依賴?yán)锾顚懲暾陌窂剑ò點omposer.json的相對目錄),而不是只填寫包目錄所在位置,

所以我把主項目的composer.json改成這樣就好了:

    "repositories": {
        "upacpsdk": {
            "type": "path",
            "url": "local3rdpackages/upacp"  //<---這里不能只寫local3rdpackages,而要寫本地包完整路徑
        },
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }

最后執(zhí)行下require就可以了:

composer require upacp/sdk:dev-master -vvv

=======下面是原問題描述=========

我要引入銀聯(lián)的sdk,于是寫了下面這種目錄結(jié)構(gòu):
圖片描述

這里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文件里導(dǎo)入local3rdpackages目錄下包的代碼如下

    "repositories": {
        "0": {
            "type": "path",
            "url": "local3rdpackages/*/*",
            "options": {
                "symlink": false
            }
        },
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }

但是還是沒有效果啊,我應(yīng)該怎么做?

回答
編輯回答
落殤

原來是新版本composer的path類型. 剛看完文檔.

2018年8月8日 07:54
編輯回答
大濕胸
    "autoload": {
        "psr-4": {
            "App\\Controller\\": "app/controller",
            "App\\Model\\": "app/model"
        }, //自動加載規(guī)范。key為項目中引用類時的namespace,value為自定義類namespace。要注意key中需要兩個\\
        "files":["app/controller/index.php"], //引入單個文件
        "classmap":["app/controller"] //引入文件夾下所有文件
    }

以上三中方式都可以映入自定義類或者函數(shù)。
然后在執(zhí)行 composer update

2018年9月5日 06:09
編輯回答
尛曖昧
執(zhí)行composer dump-autoload
然后查看/vendor/composer/autoload_files.php中生成的文件映射是否正確
2018年6月1日 06:22