从 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);