Netbeans single variable type hinting

In some code blocks (especially in symfony DI related) it's impossible to guess what class the object has, but it's possible to use single-line annotation before assignment:

 
$object = $this->get('doctrine')
      ->getRepository('MyBundleName:Object')
      ->findOneById($id);
/* @var $object \My\Bundle\Name\Entity\Object */
 

with this netbeans will be able to auto-complete $object-> calls.

Please note that this annotation should be places after variable defintion as above!

You can also use shorter path:

 
/* @var $object Object */
 

if you have

 
use My\Bundle\Name\Entity\Object
 

defined in top of your file.

Doctrine/Symfony2 multiple database connections and Entity Managers

dbal:
    default_connection:       default
    connections:
        default:
            dbname:           database1
            user:             root
            password:         password
            host:             localhost
        other:
            dbname:           database2
            user:             root
            password:         password
            host:             localhost
orm:
    default_entity_manager:   default
    entity_managers:
        default:
            connection:       default
            mappings:
                MyFirstBundle: ~
        other:
            connection:       client
            mappings:
                MySecondBundle: ~

after that, you'll be able to access the other database conneciton via:

 
$this->getDoctrine()->getEntityManager('other')
 

and

 
$this->getDoctrine()->getRepository('Bundle:Entity', 'other')
 

ActiveMQ initscript

A quick'n'dirty ActiveMQ initscript, if activemq extracted to /opt/activemq.
Enable with

update-rc.d activemq defaults

, LSB-tags present.

 
#! /bin/sh
### BEGIN INIT INFO
# Provides:          activemq
# Required-Start:    $local_fs $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# ActiveMQ message broker
### END INIT INFO
 
case "$1" in
  start)
          /opt/activemq/bin/activemq start > /dev/null
          if [ $? -eq 0 ]
          then
                  echo "Started ok!"
          else
                  echo "Start error, try /opt/activemq/bin/activemq start"
          fi
          ;;
  stop)
          /opt/activemq/bin/activemq stop > /dev/null
          if [ $? -eq 0 ]
          then
                  echo "Stopped ok!"
          else
                  echo "Stop error, try /opt/activemq/bin/activemq stop"
          fi
          ;;
  status)
    if [ `/opt/activemq/bin/activemq list | grep "Connection refused" | wc -l` -eq 0 ]
    then
      echo "Running and connected, web-interface on port 8161"
    else
      echo "Not running or connection refused"
    fi
    ;;
  restart)
    echo "Stopping..."
    /opt/activemq/bin/activemq stop > /dev/null
    echo "Starting..."
    /opt/activemq/bin/activemq start > /dev/null
    if [ `/opt/activemq/bin/activemq list | grep "Connection refused" | wc -l` -eq 0 ]
    then
      echo "Running and connected, web-interface on port 8161"
    else
      echo "Not running or connection refused"
    fi
    ;;
  *)
          echo "Usage: $0 start|stop|status|restart" >&2
          exit 3
          ;;
esac
 

Душа пешехода

Вот интересно - каждый раз перед тем как мотать куда-то, я списываюсь с Диком и опаопа он подкидывает что-то такое что челюсть звонко падает об пол.

В прошлый раз давным-давно это был конус тишины, который перечитывался во время последнего трипа Тампере / Хельсинки / Осло.

Тут, значит, Гибсон, объяснивший почему я носился на велике с горочек под 80, по маскавас на машине 120 и в Вентспилс 170, а на мопеде... про мопед опустим.
Тут Гибсон, объяснивший почему я люблю летать.

У меня замечательная душа пешехода - при движении быстрее 20 киломеров в час она отстает и застревает где-то там позади. Это успокаевает.

Спасибо.

PS: Осталось 25 часов и 1200 километров.

Спасибо

Вообще, некоторые обстоятельства все-таки заставили написать новогодний "спасибо" - пост.
Т.к. количество знакомых переваливает за over 9000, имен называть не буду, лучше события.
Итого: спасибо большому-большому человеку, женщине, похоронившей двоих, мужичку с вечным мелированием, женщине с растопыренными пальцами, йогу со стажем, человеку с карабином, парнюс с конусами в ушах, парню с хайром, другу парня с хайром, парню со странной фамилией и конечно Фабиену.

Двоим отдельное спасибо. Тому, кто пахнет карандашами, и той, кто пахнет рождеством. Вы тут все нахуй перевернули.

Symfony admin generator link with filters

Let's assume you have module A in which you'd like to place a link to module B, and you also want this link to set filters in module B.
To do this, you'll have to use following code:

 
$filters = array('query_string' => 'filter',
  'filters' => array('a_id' => $A->getId()));
 
echo link_to('Go and apply filter',
  'b/index?'.http_build_query($filters));
 

Following this link, user will visit module B with 'a_id' filter field set to $A->getId()
No csrf_token is needed - it's a simple solution to crosslink your symfony admin modules.