PIP MVC - PHP Controllers


PIP MVC - PHP Controllers

嗨,我对MVC框架很陌生。我决定在 MVC 中构建一个小应用程序来更好地理解。

我用谷歌搜索了一下,找到了可用于简单应用程序的 PIP 框架,然后在我完全理解后进行修改。

中画可以在这里找到

现在我有一个问题,通过查看 PIP 框架,我是否需要为我将使用的每个页面设计新的控制器。

例如

applications/
      views/ 
        home.php
        about.php
        contact.php
      controllers/
         main.php
         aboutus.php ??
         contactus.php ??

例如,我的默认控制器和视图是main.phphome.php,我有一个用于main的控制器.php如下所示:

<?php
     class Main extends Controller {
     function index()
     {
        $template = $this->loadView('home');
        $template->set('title', "Welcome Homepage");
        $template->render();
      } 
  }
?>

那么,通过这种方式,我是否需要为关于和联系创建新的conrollers.php

PIP 的路由是内化的,需要控制器的特定基架:

当您转到:

example.com/main

它查找控制器main,然后默认情况下index函数。

如果每个视图要有 1 个控制器,那么它将是这样的:

example.com/main
class Main extends Controller
example.com/about
class About extends Controller
example.com/contact
class Contact extends Controller

但是,如果您使用默认的page控制器,这将大大简化基架:

example.com/page/{about|contact|main}
class Page extends Controller {
    public function about (){
    }
    public function contact(){
    }
    public function main(){
    }
}

现在,1 个控制器将处理每个页面的交付。

使用 pip 时,URL 定义了将要执行的控制器和函数。如果希望联系人页面位于 mysite.com/contact ,则需要添加联系人控制器。

您无需为每个页面创建新的控制器。假设您有一个论坛。您可以有以下网址:

  • mysite.com/blog/write
  • mysite.com/blog/view/15

这些不同的 URL 都将在一个控制器中处理,blog.php

<?php
class Blog extends Controller {
    public function write()
    {
        echo 'Hello World!';
    }
    public function view($postId)
    {
       echo 'Viewing post: ' . $postId;
    }
}

我还使用 PIP 作为入门框架,并对其进行扩展以包含一些附加功能。 我甚至开始记录我的努力,但其他项目将我带到了其他方向。很高兴分享我所拥有的,有关我的 PIP 工作的一些文档可以在 http://www.shed22.com/pip 上找到。

如果您想要源代码的副本和示例应用程序,请告诉我。

斯蒂芬