【问题标题】:Google API PHP client with Composer带有 Composer 的 Google API PHP 客户端
【发布时间】:2017-11-16 17:07:46
【问题描述】:

我制作了一个依赖于 Youtube API 的 WP 插件。所以,为了做好它,我使用 Google API PHP 客户端。

我的问题很简单:当我只需要使用 Youtube 服务时,Google API PHP 客户端很大(超过 12 000 个文件),包括所有 Google 服务的客户端。因此,当大多数文件在我的情况下无用时,我不愿意将所有这些文件提交到 WP 插件仓库。

所以,现在,我的composer.json 看起来像这样:

{
    "require": {
        "google/apiclient": "^2.0"
    }
}

有什么方法可以只使用 Youtube API 客户端(如果可能的话,使用 composer)?

【问题讨论】:

  • 我怀疑 Composer 不可行。您可以可能使用 Xdebug 或 Blackfire 之类的工具来准确确定您的应用在 Google 文件中的使用情况,然后将其包含在内。
  • 当然,这就是我所做的。但这对我来说似乎有点乱。
  • 确实很乱。如果 WordPress 开始使用 Composer,那就太好了。

标签: php composer-php google-api-php-client


【解决方案1】:

这不是为了装腔作势,但它是可行的。

  1. 转到回购的这个分支https://github.com/google/google-api-php-client/tree/v1-master
  2. 获取完整的src/Google 目录,您将需要所有这些。
  3. src/Google/Service 目录中包含所有不同 API 的内容。删除除 YouTube 之外的所有内容。
  4. 交叉手指它应该可以工作。

这不会删除所有 12000 个文件,但它应该为您提供您绝对需要的内容。我曾经这样做,但已经有几年了。

【讨论】:

  • 最后,这就是我所做的。删除 src/Google/Service 中的所有内容,除了所有相关的 Youtube 内容。有用。我要在 Github 上开一个 issue 来询问这个功能。
  • 我对作曲家的了解不够,但如果他们没有办法为每个 api 打包它,我不会感到惊讶。我认为主要问题是据我所知,他们这些天在图书馆上没有做太多的开发。我不确定谁在处理功能请求
【解决方案2】:

不幸的是,如果不手动将相关文件包含在您的项目中,我认为这是不可能的(这是一个非常糟糕的主意)。

之所以不可能,是因为 Google 将 PHP 库的所有服务 API 都放在了单个 GitHub 存储库中:

https://github.com/google/google-api-php-client-services

如果 Google 确实将它们拆分为多个存储库,则可以包含一个存储库。

不过,目前,所有服务都在一个 composer 项目和一个 repo 下。也许值得提出一个 GitHub 问题来向 Google 询问这个问题?

【讨论】:

  • 这就是我担心的答案。我想我很快就会提出一个问题。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2019-12-10
  • 2015-10-07
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 2020-09-23
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多