嗨,我对MVC框架很陌生。我决定在 MVC 中构建一个小应用程序来更好地理解。
我用谷歌搜索了一下,找到了可用于简单应用程序的 PIP 框架,然后在我完全理解后进行修改。
画中画可以在这里找到
现在我有一个问题,通过查看 PIP 框架,我是否需要为我将使用的每个页面设计新的控制器。
例如
applications/
views/
home.php
about.php
contact.php
controllers/
main.php
aboutus.php ??
contactus.php ??
例如,我的默认控制器和视图是main.php
和home.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 上找到。
如果您想要源代码的副本和示例应用程序,请告诉我。
斯蒂芬