Bagaimana menggunakan koneksi dinamis pada sebuah symfony task ?

Misalkan saya memiliki config/databases.yml seperti ini :

all:

ppmb: { class: sfDoctrineDatabase, param: { dsn: 'mysql:host=localhost;dbname=ppmb', username: ppmb, password: the_password } }

ppmb2011: { class: sfDoctrineDatabase, param: { dsn: 'mysql:host=localhost;dbname=ppmb2011', username: ppmb, password: the_password } }

pmb2012: { class: sfDoctrineDatabase, param: { dsn: 'mysql:host=localhost;dbname=pmb2012', username: ppmb, password: the_password } }

File konfigutasi diatas dapat dimodifikasi via antar muka di bagian panel administrator sebuah aplikasi.

Kemudian, kita memiliki sebuah symfony task (batch job), yang tentu saja dapat membuka koneksi kesemua database yang didefinisikan di config/databases.yml, bagaimana caranya ?

Untuk penjelasan detail, insyaAllah, akan dijelaskan kemudian, tapi untuk sementara dapat melihat kode sumber [1].

Referensi

1. AlisJK Import Jawaban Task, https://bitbucket.org/wildanm/alisjk/src/cdd405392e37/lib/task/alisjkImportJawabanTask.class.php