PHP MVC controller code needs diet?
A controller? No. A model? Sure. Not sure if Symfony defines a controller differently, but this is not what I think of as a controller.

As for refactoring, the easiest way would be to break it up into smaller methods. For instance, right off the bat I see at least 6 different potential methods here. You could create a bunch of smaller methods that returns a part of the bag (messaging, charting, etc...) and then merge them all together. In fact, that's the only real improvement I can see. I feel bad leaving such a short answer, so here's an example of a couple of those smaller methods, which is actually about half that code.

private function getUsageCharts ( $usage ) {
    $rawData = $usage-&gt;getRawData();
    $start   = $usage-&gt;getStartDate();
    $end     = $usage-&gt;getEndDate();

    $line_chart = $charting-&gt;createMessagesLineChart($rawData, $start, $end);
    $pie_chart  = $charting-&gt;createMessagesPieChart($rawData);

    return compact( 'usage', 'line_chart', 'pie_chart' );
}

private function getMessagingFields( $loggedUser ) {
    $messaging = $this-&gt;get('messaging.helper');

    $subscription = $messaging-&gt;createSubscriptionFromUser($loggedUser);
    $usage = $messaging-&gt;createUsageFromSubscription($subscription);
    $inhibitor = $messaging-&gt;createInhibitor($usage, $subscription);

    extract( $this-&gt;getUsageCharts( $usage ) );//$line_chart, $pie_chart
    return compact( 'subscription', 'usage', 'inhibitor', 'line_chard', 'pie_chart' );
}


Hope this helps!