Php 如何在symfony2中调用控制器的外部类
如何在我的控制器中包含此代码? 我必须创建目录到供应商或类似的东西吗Php 如何在symfony2中调用控制器的外部类,php,symfony,twitter,controller,Php,Symfony,Twitter,Controller,如何在我的控制器中包含此代码? 我必须创建目录到供应商或类似的东西吗 require_once('twitter-sdk/twitteroauth.php'); $consumerKey = 'xxxxxxxxxxxxx'; $consumerSecret = 'xxxxxxxxxxxxx'; $accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; $accessTokenSecret = 'xxxxxxxxxxxxxxxxxxxxxxxx'; $messag
require_once('twitter-sdk/twitteroauth.php');
$consumerKey = 'xxxxxxxxxxxxx';
$consumerSecret = 'xxxxxxxxxxxxx';
$accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$accessTokenSecret = 'xxxxxxxxxxxxxxxxxxxxxxxx';
$message = "je suis entrain de tester quelque chose"; // Message à tweeter : doit contenir moins de 140 caractères
$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$res = $tweet->post('statuses/update', array('status' => $message));
print_r($res);
您可以在bundle名称空间中创建目录,比如TwitterOAuth/并在其中创建两个php文件:第一个是WutterOAuth类定义,第二个是具有身份验证逻辑的文件(它可能被称为TwitterOAuthProvider或其他文件)。将适当的名称空间放入这两个名称空间中 TwitterOAuth:
<?php
namespace YourBundleNamespace\TwitterOAuth;
class TwitterOAuth {
// twitteroauth implementation
}
从控制器中调用它,如下所示:
$this->get('twitter_oauth_provider')->authenticate();
可能是这样吗
添加consumerKey
,consumercret
。。。要parameters.yml
文件,请在捆绑包的根目录中创建一个目录,例如,Component
,将twitter sdk
复制到其中,创建服务类,注册它:
class TwitterSDKManager
{
private $consumerKey;
private $consumerSecret;
private $accessToken;
private $accessTokenSecret;
private $message;
public function __construct($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret)
{
$this->consumerKey = $consumerKey;
$this->consumerSecret = $consumerSecret;
...
}
public function getOAuth()
{
return new TwitterOAuth($this->consumerKey, $this->consumerSecret, $this->accessToken, $this->accessTokenSecret);
}
...
}
服务配置:
...
<parameter key="twitter_sdk.manager.class">Vendor\MyBundle\Manager\TwitterSDKManager</parameter>
....
<service id="twitter_sdk.manager" class="%twitter_sdk.manager.class%">
<argument key='consumerKey'>%consumerKey%</argument>
<argument key='consumerSecret'>%consumerSecret%</argument>
....
</service>
...
我是否必须在目录TwitterSDK中创建TwitterSDKManager类?我可以在哪里找到服务配置文件如果我把我的Twitter誓言放在供应商/组件中我的BundleNamespaceNo是什么,不要这样做。在供应商目录中应该放置代码,该代码可能由编写器从PackageGist中检索。你可以上传到packagist,但我想你不需要它。在您的情况下,最好将其保存在您的捆绑包中(很明显,供应商/不是这样做的好地方)。
class TwitterSDKManager
{
private $consumerKey;
private $consumerSecret;
private $accessToken;
private $accessTokenSecret;
private $message;
public function __construct($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret)
{
$this->consumerKey = $consumerKey;
$this->consumerSecret = $consumerSecret;
...
}
public function getOAuth()
{
return new TwitterOAuth($this->consumerKey, $this->consumerSecret, $this->accessToken, $this->accessTokenSecret);
}
...
}
...
<parameter key="twitter_sdk.manager.class">Vendor\MyBundle\Manager\TwitterSDKManager</parameter>
....
<service id="twitter_sdk.manager" class="%twitter_sdk.manager.class%">
<argument key='consumerKey'>%consumerKey%</argument>
<argument key='consumerSecret'>%consumerSecret%</argument>
....
</service>
...
$tweet = $this->get('twitter_sdk.manager')->getOAuth();
$res = $tweet->post('statuses/update', array('status' => 'Message'));
print_r($res);