On 21.03.2010, at 11:20, Lukas Kahwe Smith <[email protected]> wrote:


A problem that arises here is that you can break existing actions by defining a new service with a request parameter name. The only solution that comes in my mind is to force type hints for services...

but what exactly do you want to type hint? you would need a one to one mapping between an interface and a service name.

ok. just thinking out loud here. i dont have a final proposal here. i guess if we go the hybrid approach. that is all non optional dependencies and non object dependencies are injected into the constructor then we would only be injecting optional class instances and all the other parameters that would normally be injected would be non objects. now if you do go to the trouble of extending the class you want to inject so that you can type hint that name then one could alias service instances right inside the action method by writing the service name as a type hint along with any variable name that doesnt overlap with a expected request parameter.

we could also just say anything with a type hint that collides with a request parameter name overloads the request parameter. in that way we would no longer care about what is written as the type hint only that there was a type hint. of course if php ever gets scalar type hints one would have to filter those out again. what happens if php ever gets a string class to handle unicode and suddenly a request parameter could be an instance of that and worse yet of some extended version?

the first type hint approach sounds somewhat feasible since its really just for optional dependencies which should really be needed very rarely which means here it might be ok to force extending just to be able to use the type hint magic. the second just sounds like a world of hurt bound to happen.

regards
Lukas

--
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 developers" 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-devs?hl=en

To unsubscribe from this group, send email to symfony-devs+unsubscribegooglegroups.com or 
reply to this email with the words "REMOVE ME" as the subject.

Reply via email to