从 Symfony3 上的 parameters.yml 获取参数
Getting Parameters from parameters.yml on Symfony3
我是 Symfony3 的新手,正在尝试学习 api 连接。
仅使用 endroid_twitter 捆绑包。
我将 twitter api 密钥复制到 parameters.yml 但是当我尝试在 DefaultController.php 上使用此密钥时出错,无法获取密钥。
此处:"undefined variables"
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
parameters.yml
parameters:
database_host: 127.0.0.1
database_port: null
database_name: api
database_user: root
database_password: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: ThisTokenIsNotSoSecretChangeIt
endroid_twitter:
consumer_key: 'consumer_key'
consumer_secret: 'consumer_secret'
access_token: 'access_token'
access_token_secret: 'access_token_secret'
DefaultController.php
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Endroid\Twitter\Twitter;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$response = $twitter->query('/statuses/user_timeline', 'GET', 'json', $parameters);
$tweets = json_decode($response->getContent());
$text = $tweets[5]->text;
print_r($text);
return $this->render('default/index.html.twig');
}
}
您需要进行不同的声明才能创建新的 Twitter 服务。
试试这个:
$twitter = $this->get('endroid.twitter');
而不是这个:
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
我是 Symfony3 的新手,正在尝试学习 api 连接。
仅使用 endroid_twitter 捆绑包。
我将 twitter api 密钥复制到 parameters.yml 但是当我尝试在 DefaultController.php 上使用此密钥时出错,无法获取密钥。
此处:"undefined variables"
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
parameters.yml
parameters:
database_host: 127.0.0.1
database_port: null
database_name: api
database_user: root
database_password: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: ThisTokenIsNotSoSecretChangeIt
endroid_twitter:
consumer_key: 'consumer_key'
consumer_secret: 'consumer_secret'
access_token: 'access_token'
access_token_secret: 'access_token_secret'
DefaultController.php
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Endroid\Twitter\Twitter;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$response = $twitter->query('/statuses/user_timeline', 'GET', 'json', $parameters);
$tweets = json_decode($response->getContent());
$text = $tweets[5]->text;
print_r($text);
return $this->render('default/index.html.twig');
}
}
您需要进行不同的声明才能创建新的 Twitter 服务。
试试这个:
$twitter = $this->get('endroid.twitter');
而不是这个:
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);