Symfony2.3,如何注册在内核第三方捆绑,并从控制器加载它?(Symfony2.3, How

2019-10-19 09:21发布

我想获得一些帮助的Symfony2关于内核捆绑注册,

香港专业教育学院读最Symfony2的食谱和文档的为例的: 如何安装第三方软件包

但是却每次我没这样做。 我使用的symfony 2.3作曲家,无论是最新的。

今天,我想用所谓的“谷歌/ apiclient”上发现了一个第三方捆绑packagist.org ,为此我将下面一行添加"google/apiclient": "dev-master" ,其位于我composer.json文件我的项目的根。

随之而来的是composer.phar update ,以获得捆绑这是成功下载并安装在供应商仓库

我相信,到目前为止,IM做得很好,但下一步是我迷路。

接下来我相信香港专业教育学院在应用注册这一新的包\ AppKernel.php像其他1,对于为例:
new Symfony\Bundle\TwigBundle\TwigBundle()

但我不知道是什么,为写new google\apiclient ...
所以,第一个问题是我应该怎么写那里,你怎么看着办吧?

一旦处理得当,我相信那我现在可以在控制器中使用它,但我的第二个问题是:
如何加载它位于供应商/谷歌/ apiclient / src目录/谷歌的Client.php?

所有这一切的一点,就是要能够某物像在我的控制器给出为例:

 require_once 'Google/Client.php';
  require_once 'Google/Service/Books.php';
  $client = new Google_Client();
  $client->setApplicationName("Client_Library_Examples");
  $client->setDeveloperKey("YOUR_APP_KEY");
  $service = new Google_Service_Books($client);
  $optParams = array('filter' => 'free-ebooks');
  $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);

  foreach ($results as $item) {
    echo $item['volumeInfo']['title'], "<br /> \n";
  }

我们的目标是能够使用谷歌API的接触在Symfony2的控制器。 任何帮助或建议欢迎,欢呼

Answer 1:

对于谁喜欢我无法弄清楚如何在控制器加载第三方库的人,

这里是一个做了什么:

我想用就发现了谷歌/ apiclient packagist.org

  1. 我添加下面一行在"google/apiclient": "dev-master"下的“规定”对我composer.json位于在我的项目的根文件。

  2. 与作曲家安装新的库(在我的情况,我用的命令)
    php composer.phar update

它完成笑...
它真的那么容易,唯一剩下的是通过直接调用类加载它在你的控制器。
对于我的情况为例。
我想$client = new Google_Client();
我想我不得不使用require_once 'Google/Client.php';
但不是所有,如果您使用作曲家安装,你可以找到库/vendor/composer/autoload_classmap.php返回数组与下面的行
'Google_Client' => $vendorDir . '/google/apiclient/src/Google/Client.php',

所以我必须在我的symfony控制器是:
重要
use Google_Client;
然后$client = new Google_Client(); 和作曲家从它的加载它,我autoload_classmap.php
或直接写$client = new \Google_Client();
我希望我的经验将帮助你们中的一些,干杯,并感谢@Touki和@waldek_c。



文章来源: Symfony2.3, How to register a 3rd party bundle in Kernel, and load it from a Controller?