I currently use one controller per action. One of the problems—sort of—I encountered is when naming the methods of these controllers, which only have one.
Should I use a generic method name like get() or should I encapsulate all my controllers into one and name its methods after the action they do, e.g. indexAction(), userListAction()?


I like the Ruby on Rails "RESTful routes" convention: each controller represents a resource (a noun), and there are 7 conventional actions:

table from Ruby on Rails routing guide

Note that resources don't have to map directly to models/database tables - for e.g. password reset, you may "create" a password_reset resource to request a new password, and "update" it to set the new password, even though behind the scenes, it only modifies your user model.


I would not combine all the controllers into one. It is easier to manage lots of small classes than one great big one. This is particularly true when there are multiple developers. For method naming, it doesn't matter much, but you may want to use different names for "GET" and "POST" requests, like "get" and "post". Usually there are standard practices for a given web framework.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.