Glad I could help :-)
On Oct 16, 2008, at 7:07 AM, Marijn Huizendveld wrote:
> Hi Kris,
>
> After reading your post I was immediately convinced. I just never
> realized that I already separate my controller into get, put, post
> and delete with the layout of the actions, guess I was to focussed
> on the 3 lines of code that it would remove:-)
>
> Unless somebody can come up with a decent argument for my proposal
> discard it.
>
> Marijn
>
> On Oct 16, 2008, at 4:01 PM, Kris Wallsmith wrote:
>
>> I structured my sf1.0 actions in this way, suffixing my execute
>> methods with either Get or Post. I found this worked very nicely
>> with the 1.0 post-back pattern and validation system.
>>
>> I'm working with 1.2 now and have moved away from post-backs and
>> multi-purpose actions. My RESTful routes now target specific
>> actions, ie GET -> business/show, POST -> business/create, PUT ->
>> business/update, DELETE -> business/delete.
>>
>> Using different actions for different methods is easy to configure
>> in routing.yml and keeps the controller nice and thin, which seems
>> to be what you're going for here.
>>
>> -1
>>
>> Kris
>>
>> On Oct 16, 2008, at 3:22 AM, Marijn Huizendveld <[EMAIL PROTECTED]
>> > wrote:
>>
>>> Hi everybody,
>>>
>>> Last week I was thinking about the way sfActions and sfAction work
>>> in relation to the new options for creating RESTful controllers
>>> with symfony 1.2.
>>>
>>> I would like to propose the following API for sfActions to remove
>>> some redundant code in my sfAction sub-classes:
>>>
>>> Currently if you want to ensure that the controller is only
>>> processed given a certain HTTP method you use:
>>>
>>> class BlogPostActions extends sfActions
>>> {
>>>
>>> //...
>>>
>>> public function executeUpdate ($Request)
>>> {
>>> if ($Request->isMethod('post'))
>>> {
>>> //POST action here..
>>> }
>>> elseif ($Request->isMethod('put'))
>>> {
>>> //PUT action here..
>>> }
>>> elseif ($Request->isMethod('get'))
>>> {
>>> //GET action here..
>>> }
>>> }
>>>
>>> //...
>>>
>>> }
>>>
>>> I think that it would be great if we could just create different
>>> controllers for each type with backwards compatibility like this:
>>>
>>> class BlogPostActions extends sfActions
>>> {
>>>
>>> //...
>>>
>>> public function executeUpdatePost ($Request)
>>> {
>>> //POST action here..
>>> }
>>>
>>> public function executeUpdateGet ($Request)
>>> {
>>> //GET action here..
>>> }
>>>
>>> public function executeUpdatePut ($Request)
>>> {
>>> //PUT action here..
>>> }
>>>
>>> public function executeEdit ($Request)
>>> {
>>> //and it is backwards compatible
>>> }
>>>
>>> //...
>>>
>>> }
>>>
>>> Especially with the new Form Framework this can save some lines of
>>> code and perhaps make it more readable as well (I think
>>> readability is a personal preference..).
>>>
>>> To implement this I've allready created a new version of the
>>> method sfActions::execute() that dispatches the request to the
>>> right controller. Unfortunately this is not sufficient for
>>> implementing the behavior, sfController::controllerExistst() needs
>>> to be altered as well. Hopefully I have some time next week to
>>> finish that method as well.
>>>
>>> I will certainly use it myself but I was wondering if I should
>>> propose this as a behavior for symfony 1.2...
>>>
>>> What do you guys think?
>>>
>>> Marijn
>>>
>>>
>>
>>
>>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---