如何在symfony2.3中包含外部库

时间:2014-01-17 08:25:20

标签: php symfony symfony-2.3

我想在我的新项目中实现yelp API。下载了他们的库和示例代码。但是这个库很老了,3年前上传了。我不知道怎么把它包含在symfony2.3中。任何人都可以告诉我如何在symfony2.3项目中包含这种类型的文件。

1 个答案:

答案 0 :(得分:1)

我认为你可以将它定义为这样的服务:

首先在你的包中加入Api,例如:

Acme/YourBundle/Yelp/

但是你必须将各个文件中的类分开:

Acme/YourBundle/Yelp/OAuthToken.php
Acme/YourBundle/Yelp/OAuthConsumer.php
Acme/YourBundle/Yelp/OAuthSignatureMethod_HMAC_SHA1.php
Acme/YourBundle/Yelp/OAuthRequest.php

并为每个添加命名空间:

namespace Acme\YourBundle\Yelp;

class OAuthToken {
    ...

然后在app/config/parameter.yml中定义键:

parameters:
    yelp_token: "..."
    yelp_token_secret: "..."
    consumer_key: "..."
    consumer_secret: "..."

现在app/config/config.yml

中的服务
services:
    yelp_token:
        class: Acme\YourBundle\Yelp\OAuthToken
        arguments: [%yelp_token%, %yelp_token_secret%]
    yelp_consumer:
        class: Acme\YourBundle\Yelp\OAuthConsumer
        arguments: [%consumer_key%, %consumer_secret%]
    yelp_signature_method:
        class: Acme\YourBundle\Yelp\OAuthSignatureMethod_HMAC_SHA1
    yelp_oauthrequest:
        class: Acme\YourBundle\Yelp\OAuthRequest

在您的控制器中,您可以访问以下类:

$yelp_token = $this->container->get('yelp_token');

我不认为这是一个复制/粘贴解决方案,但它可能会指导您朝着正确的方向发展。