What do you call your main controller? |
I'm making a very simple social network, just as an exercise. I haven't got a name for it, so for this example, lets just call it poo.com.
So if I'm on poo.com the url will look something like www.poo.com/index.php/controller/home Something like this would be better www.poo.com/index.php/home I know I could have a controller called "home", and just use the index function but I don't want to use a different controller for every single function. That would make writing the code a nightmare. Any suggestions? What do you call your main controller? From what I've been reading there are probably ways to get rid of the controller from the url, but even so, I still have to call the controller something.
(11-13-2015, 07:39 AM)Martin7483 Wrote: Are your pages going to be controllers or are they coming from a DB? I have a database which will store blog posts. So far the controller function is called and that calls a function from the model to retrieve the posts, then the controller passes them to the view. Sorry, I'm not really sure what you mean.
In normal CI a page is represented by a Controller/index method and a sub page is a method within the controller. You can also have each page be a database record.
In my CMS I use this approach and have a Frontend Controller and a Backend Controller. My CMS is a collection of modules that uses HMVC. My Frontend handles the the request uri and will display the called page.
Thank you for replying.
I'm not sure I follow you. In your first sentence you say each page is represented by controller/index method. But then you say you have a frontend controller and a backend controller. That would imply you only had two controllers and not a controller for each page.
Also, how can a page be a database record?
Are there any examples of real projects that use codeigniter where I can see an example of what you are saying?
It might be a bit vague what I mean.
As I said at first, in normal CI use each page is represented by a Controller/index method and a sub page would be a method within a Controller. Lets say your default Controller set in Routes.php is named Home. http://www.socialnetwork.com would route to this Home Controller and index method http://www.socialnetwork.com/register would route to the Register Controller and index method http://www.socialnetwork.com/register/signup would route to the Register Controller and signup method You said (11-13-2015, 06:39 AM)DreamOfSleeping Wrote: I know I could have a controller called "home", and just use the index function but I don't want to use a different controller for every single function. That would make writing the code a nightmare. So to me that means you want to route all your requests to one Controller. And in that case the name should be what ever you think is a clear description of what this Controller does. Like in my case, frontend and backend. To do this you can use route rules in the Routes.php config file, or use a catch-all Controller. I use a catch-all Controller as it gives me more freedom than setting routing rules by hand.
Thanks again for replying. I admit already knew the first half of what you said. I think it's my fault for not making myself clear. It's a complicated topic though.
If I had one page per controller. I could have a controller called "profile", which would show the users profile. I could have one called "home" which would show the users their home page. But what would I call the controller that deals with the website home, rather than the user home. Or would I just have one controller called 'home', and in the index it looks to see whether the user is logged in or not and shows the appropriate view?
Ah, haha, yes it's complicated
I would keep it home, and indeed depending on user status show the appropriate view
|
Welcome Guest, Not a member yet? Register Sign In |