Hi,

I have a problem where I am not sure how to best structure this using  
the service container yaml syntax.

Take for example this configuration for production:

services:
   db:
     class:    api_db_doctrine
     arguments:
       dsn: mysql://infocube:l...@localhost/infocube
       options:
         models_path: localinc/api/model
         name: default
         charset: utf8
       log: false
     shared:   true

Should look like the following during development:

services:
   writer:
     class:    Zend_Log_Writer_apiFirebug
     arguments: []
     shared:   true
   logger:
     class:    Zend_Log
     arguments: [...@writer]
     shared:   true
   log:
     class:    api_log
     arguments: [...@logger, DEBUG, true]
     shared:   true
   db_logger:
     class:    api_db_doctrine_log
     arguments: [...@log]
     shared:   true
   db:
     class:    api_db_doctrine
     arguments:
       dsn: mysql://t...@localhost/test
       options:
         models_path: localinc/api/model
         name: default
         charset: utf8
       log: @db_logger
     shared:   true

---

Now what I obviously want is to keep the differences to a minimum.

So ideally I would do a default service definition like so:

# parameters.yml
parameters:
   db_logger: false

#services.yml
imports:
   parameters: { resource: parameters.yml, class:  
sfServiceContainerLoaderFileYaml }

services:
   db:
     class:    api_db_doctrine
     arguments:
       dsn: mysql://infocube:l...@localhost/infocube
       options:
         models_path: localinc/api/model
         name: default
         charset: utf8
       log: %db_logger%
     shared:   true

Now for the development setup I would have something like:

# services_dev.yml
imports:
   default: { resource: services, class:  
sfServiceContainerLoaderFileYaml }

services:
   writer:
     class:    Zend_Log_Writer_apiFirebug
     arguments: []
     shared:   true
   logger:
     class:    Zend_Log
     arguments: [...@writer]
     shared:   true
   log:
     class:    api_log
     arguments: [...@logger, DEBUG, true]
     shared:   true
   db_logger:
     class:    api_db_doctrine_log
     arguments: [...@log]
     shared:   true

Now how do I  get @db_logger into the services.yml definition?

Not sure what the best approach is .. maybe I need to move the loading  
of the parameters.yml file out of the services.yml and into my  
initialization code that makes the sfServiceContainer instance. As in  
decide based on the environment what services and what parameters yaml  
to load.

regards,
Lukas Kahwe Smith
m...@pooteeweet.org




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to