Hi Johannes,

No, or at least I don't know how to do it. It's the first time I use the
scope feature. Just adding scope="prototype" to my "UserService" and I get
the exception I described before.

If the way I described should work, I'll try to reproduce it in a unit test.



Thanks for your answer!

Best regards.

On Wed, Mar 16, 2011 at 6:27 PM, Johannes Schmitt <[email protected]>wrote:

> On first sight, this looks like a bug. Could it be that you added a custom
> scope?
>
> Kind regards,
> Johannes
>
> On Wed, Mar 16, 2011 at 10:16 PM, Gustavo Adrian <
> [email protected]> wrote:
>
>> Hi all,
>>
>> I'm having some issues with service scoping. I'll try to describe my
>> situation the best I can. If something is not clear, please tell me :).
>>
>> Having this base classes:
>>
>> , Module (which can have services)
>> . Service (which can have other services)
>>
>> I could have something like this:
>>
>> UserModule has a UserService, which can have a ContactInformationService.
>> ContactInformationModule has another instance of ContactInformationService.
>>
>> So, for the first case, I define in the DIC a "user_module" service, a
>> "user_service", and a "contact_information_service". Then, in the
>> "user_module"'s definition, I add the "user_service" to the "user_module"
>> with a call to a Module's method called "addService". Finally, in the
>> "user_service"'s definition, I add to it the sub-service
>> "contact_information_service" with a call to the method "addService".
>>
>> My problem: Each Module should be instantiated only once. This is OK. But
>> each Service should be instantiated once per Module and each time it's been
>> added to a service, as a sub-service. This is because each service can have
>> a different state, depending on if it's a subservice or not. So, I tried to
>> change the scope of my services to "prototype" to accomplish this. But then
>> I received the following error:
>>
>> *"Scope Crossing Injection detected: The definition
>> "module_manager.module.user" references the service
>> "module_manager.module.user.service" which belongs to another scope
>> hierarchy. This service might not be available consistently. Generally, it
>> is safer to either move the definition "module_manager.module.user" to scope
>> "prototype", or declare "container" as a child scope of "prototype". If you
>> can be sure that the other scope is always active, you can set the reference
>> to strict=false to get rid of this error"*
>>
>> I tried to use strict="false" but then I've got an infinite recursion
>> problem.
>>
>> Is my approach correct in terms of the DIC? I mean, is it possible to
>> have, in one hand, one service with scope="container" and add to it services
>> with scope="prototype" and, in the other hand, have a service with
>> scope="prototype" and add to it another service with the same scope?
>>
>> I hope I'm clear. If not, please tell me.
>>
>>
>>
>> Thanks!
>>
>> --
>> If you want to report a vulnerability issue on symfony, please send it to
>> security at symfony-project.com
>>
>> You received this message because you are subscribed to the Google
>> Groups "symfony users" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/symfony-users?hl=en
>>
>
>  --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony users" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

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

Reply via email to