Shortcuts are really useful and make you gain productivity, here are those I use or force me to use:


Inside file operations

Move line(s) Alt + (Up || Down)
Duplicate line(s) Ctrl + Alt + (Up || Down)
Move inside a file without moving cursor Ctrl + (Up || Down),
then Up || Down to go back to cursor position.
Quickly move cursor inline Ctrl + (Left || Right)
Move cursor to line begin or end End / Begin
Text selection Shift + ( Up || Down || Left || Right )
Quick text selection Ctrl + Shift + (Left || Right)
Comment/Uncomment line(s) Ctrl + Shift + C

Switching files operations

Search inside a file Ctrl + F,
then Enter to switch,
then Echap to edit last selected one.
Search inside a project/folder Click on project/folder inside Eclipse explorer,
then Ctrl + H,
then Ctrl + (. || ,) to switch.
Open a file from opened projects Ctrl + Shift + R,
then type file you want or things like ‘AbstractListing*.js’,
then Up || Down,
then Enter.
Go to prev/next opened file Ctrl + (Page Up || Page Down)

Firefox / Chrome:

Open new tab Ctrl + T
Close current tab (Mouse middle click too) Ctrl + W
Reopen last closed tab Ctrl + Shift + T
Go to prev/next tab Ctrl + (Page Up || Page Down)
Go to specific tab Ctrl + (1 || 2 || 3…. || 8)
Go to last tab Ctrl + 9
Go inside url field F6
Modify zoom Ctrl + (+ || - || 0 (reset))
Reload, reload without cache F5 / Ctrl + F5
Open developer tools F12

Sometimes you want to know in live, how many Doctrine queries, memory usage, or others things while testing your Get REST api, here is a simple way to have your profiler.

The condition to have the profiler added is to output HTML, so we output HTML.


    routes_to_convert_html: ["api_datasource_get_source", "api_datasource_get_customer", "api_datasource_get_history"]
        class: CTM\DatasourceBundle\Listener\ConvertToHtmlResponseListener
        arguments: ['%routes_to_convert_html%']
            - { name: kernel.event_listener, event: kernel.response }
namespace CTM\DatasourceBundle\Listener;

use Symfony\Component\HttpKernel\Event\FilterResponseEvent;

class ConvertToHtmlResponseListener {
    protected $routes;

    public function __construct(Array $routes)
        $this->routes = $routes;
	public function onKernelResponse(FilterResponseEvent $event) {
		if (!$event->isMasterRequest()) {
		$request = $event->getRequest();
		if (!in_array($request->attributes->get('_route'), $this->routes)) {
		if (!$request->headers->has('Accept') || (false === strpos($request->headers->get('Accept'), 'text/html'))) {

		$response = $event->getResponse();
		switch ($request->getRequestFormat()) {
			case 'json':
				$prettyprint_lang = 'js';
				$content = json_encode(json_decode($response->getContent()), JSON_PRETTY_PRINT);

			case 'xml':
				$prettyprint_lang = 'xml';
				$content = $response->getContent();


			'<html><body>' .
				'<pre class="prettyprint lang-' . $prettyprint_lang . '">' .
					htmlspecialchars($content) .
				'</pre>' .
				'<script src=""></script>' .
		$response->headers->set('Content-Type', 'text/html; charset=UTF-8');

Solution found here: Paul Ferrett - Stack Overflow

To check your POST PUT DELETE requests, use Chrome Postman extension (a must-have tool), and then use the symfony2 Profiler history by clicking on “View last 10” button.