Re: Entry point of an MVC framework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 12, 2012 at 10:21:21PM +0200, Simon Dániel wrote:

> Hi,
> 
> I have started to develop a simple MVC framework.
> 
> I have a base controller class which is abstract and all of the
> controllers are inherited from that. Every controller contains actions
> represented by methods. (E. g. there is a controller for managing
> product items in a webshop, and there are seperate actions for create,
> modify, remove, etc.) There is also a default action (usually an index
> page), which is used when nothing is requested.
> 
> But what is the best way to invoke an action? I can't do it with the
> baseController constructor, becouse parent class can't see inherited
> classes. And I can't do it with the constructor of the inherited
> class, becouse this way I would overwrite the parent constructor. And
> as far as I know, it is not a good practice to call a method outside
> of the class, becouse the concept of operation of the class should be
> hidden from the other parts of the application.

While I have a progressively growing dislike of frameworks, I'll give
you the following advice from what I've observed in other frameworks:

Normally, you build a controller class elsewhere which inherits from the
base controller class. Let's say it's a controller for blog entries.
Now, you populate the (child) controller with the methods you'll need
for each action. Like a method to delete blog entries. A method for
adding blog entries. Etc.

At that point, you have to decide if you're going to use server
redirection or standard URLs to get to your controller. That is:

http://mysite.com?controller=blog&action=add

or

http://mysite.com/blog/add/

The latter method is preferred by those who believe there's such a
mythical beast as "pretty URLs" preferred by search engines (there
isn't). It requires the use of .htaccess files and Apache's mod_rewrite,
which you may not have in a shared hosting environment.

Hopefully that helps.

Paul

-- 
Paul M. Foster
http://noferblatz.com
http://quillandmouse.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux