App Engine Cloud Build 抛出不正确的作曲家安装错误
App Engine Cloud Build throwing incorrect composer install error
所以...我有一个奇怪的。我有一个格式如下的 composer.json 文件:
{
"require": {
"twilio/sdk": "^6.20"
},
"autoload": {
"classmap": [
"model/*"
]
}
}
我正在尝试将 PHP 应用程序与 composer.json 一起部署到 App Engine 应用程序服务。但是,当 Cloud Build 运行s composer install --no-dev --no-progress --no-suggest --no-interaction
构建应用程序时,Composer 会抛出此错误:
Step #6 - "builder":
Step #6 - "builder":
Step #6 - "builder": [RuntimeException]
Step #6 - "builder": Could not scan for classes inside "model/*" which does not appear to be a file nor a folder
Step #6 - "builder":
Step #6 - "builder":
问题是,当我 运行 App Engine 正在构建的目录中的确切命令时,我生成自动加载 class 没问题。
现在模型文件夹中有一个class递归。
此外,当我从 composer.json
中删除 autoload
部分时,它可以很好地部署到应用程序引擎,并且我已经验证了部署的应用程序文件中目录的存在。
所以我的问题是:
为什么 Cloud Build 出现我无法在本地重现的作曲家错误?
---- 编辑 ----
我的文件结构如下所示:
在大多数情况下,这是由于复制或克隆而发生的,并且您有一些损坏的文件或任何作曲家更新已崩溃或中断。
所以,只需删除供应商文件夹并重新安装
composer clearcache && rm -rf vendor && composer install
此外,classmap 的问题是每次创建新的 class 文件时都需要重新生成 classmap 数组,尽管 Classmap 自动加载是自动加载器中最快的因为它从预建数组加载 classes。
从 Composer 2.0 开始,类映射路径中支持通配符。我假设在构建期间使用了 Composer 1.x,但它不识别此语法。
我建议只从路径中删除星号,因为含义完全相同,而且它也适用于较旧的 Composer。
"autoload": {
"classmap": [
"model/"
]
}
所以...我有一个奇怪的。我有一个格式如下的 composer.json 文件:
{
"require": {
"twilio/sdk": "^6.20"
},
"autoload": {
"classmap": [
"model/*"
]
}
}
我正在尝试将 PHP 应用程序与 composer.json 一起部署到 App Engine 应用程序服务。但是,当 Cloud Build 运行s composer install --no-dev --no-progress --no-suggest --no-interaction
构建应用程序时,Composer 会抛出此错误:
Step #6 - "builder":
Step #6 - "builder":
Step #6 - "builder": [RuntimeException]
Step #6 - "builder": Could not scan for classes inside "model/*" which does not appear to be a file nor a folder
Step #6 - "builder":
Step #6 - "builder":
问题是,当我 运行 App Engine 正在构建的目录中的确切命令时,我生成自动加载 class 没问题。
现在模型文件夹中有一个class递归。
此外,当我从 composer.json
中删除 autoload
部分时,它可以很好地部署到应用程序引擎,并且我已经验证了部署的应用程序文件中目录的存在。
所以我的问题是:
为什么 Cloud Build 出现我无法在本地重现的作曲家错误?
---- 编辑 ----
我的文件结构如下所示:
在大多数情况下,这是由于复制或克隆而发生的,并且您有一些损坏的文件或任何作曲家更新已崩溃或中断。
所以,只需删除供应商文件夹并重新安装
composer clearcache && rm -rf vendor && composer install
此外,classmap 的问题是每次创建新的 class 文件时都需要重新生成 classmap 数组,尽管 Classmap 自动加载是自动加载器中最快的因为它从预建数组加载 classes。
从 Composer 2.0 开始,类映射路径中支持通配符。我假设在构建期间使用了 Composer 1.x,但它不识别此语法。
我建议只从路径中删除星号,因为含义完全相同,而且它也适用于较旧的 Composer。
"autoload": {
"classmap": [
"model/"
]
}