作曲家 - 包含require_once的结帐包



>我有一个问题,包括通过作曲家的私人Google Adwords API库版本4.6.0。在这个库中,有一些文件包含require_once语句,这些语句本身会抛出错误,例如:

PHP Fatal error: main(): Failed opening required 'Google/Api/Ads/Common/Util/Logger.php'

Composer.json 看起来像:

"repositories": [
        {
            "type": "package",
            "package": {
                "name": "google/adwords",
                "version": "4.6.0",
                "source": {
                    "url": "svn-url/3.3.5/google_lib/",
                    "type": "svn",
                    "reference": "Apility/"
                }
            }
        }
    ]

和:

"require": {
        "google/adwords": "4.6.0"
    }
    "autoload": {
        "classmap": [
            "vendor/google/"
        ]
    }
}

对于作曲家来说,有没有处理库中require_once语句的通用方法?

问候议员


我无法删除require语句,因为它是一个库,当更新到来时,所有更改都消失了。

我已经试过了:

"repositories": [
        {
            "type": "package",
            "package": {
                "name": "google/adwords",
                "version": "4.6.0",
                "source": {
                    "url": "https://subversion.unister.lan/keyword-tool/trunk/API_2009/google_lib/",
                    "type": "svn",
                    "reference": "Apility/"
                },
                "autoload": {
                    "classmap": ["src/"]
                },
                "include-path": ["src/"]
            }
        }
    ],
    "require": {
        "google/adwords": "4.6.0",
    }

但是,库的类没有添加到autoload_classmap.php并且找不到库。

是的,这些语句通常取决于正确设置include_path,您也可以使用 Composer 执行此操作。请参阅 https://getcomposer.org/doc/04-schema.md#include-path

更好的方法是修复代码中的潜在问题,即删除这些语句。

此外,您自己的软件不应该像现在这样声明该库的自动加载(即在供应商目录中声明自动加载)。您正在手动声明包信息,并且该包还应包含自动加载信息以及包含路径设置。请参阅文档中的智能示例:https://getcomposer.org/doc/05-repositories.md#package-2

相关内容

  • 没有找到相关文章

最新更新