バンドルを構築するときは、フレームワーク関数を操作し、統合オートローダーを使用する必要があります。
フレームワークと戦わないでください
あなたの場合、私はあなたのバンドル内のサービスフォルダを好みます。次に、そのフォルダにGoogleクラスを配置し、正しい名前空間にあるProxyクラスを構築して、Googleコードを抽象化できます。
Serviceクラスでは、requireを使用してlibをインポートするか、composerを介してソースをロードできます。ここでは最も簡単な方法を使用します。
<?php
namespace MySF2Bundle\Service;
require_once __DIR__.'/google-api-php-client/src/Google_Client.php'
...
class GoogleAPIWrapper {
public function getGoogleDriveConnection() {
/**
* Implement the Google drive functions
*/
}
}
次に、名前空間をインポートするときにバンドルで使用できます。
use MySF2Bundle\Service\GoogleAPIWrapper;
このメソッドを使用すると、バンドルコードからGoogle APIを抽象化して、より適切な構造で作業することができます。名前空間で問題が発生する可能性があります。しかし、あなたはそれをテストすることができます。
それ以外の場合は、Githubの他のバンドルが外部ライブラリをどのように実装しているかを確認できます。
別の方法は次のとおりです。
http://www.kiwwito.com/article/add-third-party-libraries-to-symfony-2Symfony2
プロジェクトに外部ライブラリを追加する
したがって、完全なライブラリを実装し、symfony2オートローダーにライブラリをロードできます
$loader->registerPrefixes(array(
'Google' => __DIR__.'/../vendor/Google/Drive/',
));
したがって、外部ライブラリを実装する可能性がいくつかあることがわかります。