不幸的是,这是一个没有 1 个正确答案的问题。很大程度上取决于您更喜欢如何实现 MVC 模式。
在其基础 MVC 使用:模型、视图和控制器
模型
这些类应该代表数据库中的实体
例子:
Model_User映射到用户表中的实体
$user = new Model_User;
$user->first_name = 'Joe';
$user->last_name = 'Smith';
$user->save();
视图
这些文件存储演示数据/模板(通常/大部分是 html)
例子:
索引.tpl
<h1>HELLO, WORLD!</h1>
<h2><?=$some_variable_from_controller?></h2>
控制器
这些文件处理传入的请求并处理要注入视图的数据
例子:
Controller_Home处理对主页的请求
class Controller_Home extends Controller {
public function action_index(){
$view = View::factory('index');
$view->render();
}
}
现在您已经掌握了基础知识,是时候了解这种有限结构所引发的特定问题了。控制器变得有点肥胖和凌乱。这将我们引向库或面向服务的体系结构。
这些库允许我们将大量逻辑移动到一个可移植的服务层中,可以轻松地在所有控制器、模型和其他库中使用。他们还将我们的代码分解成更小更简洁的块,这些块实际上是有意义的。
例子:
在我的控制器中,我可以简单地创建一个Social_Login_Service并按如下方式使用它,而不是使用一堆通过 facebook 登录用户的逻辑。
Social_Login_Service::facebook($user_email);
现在,您只会在登录控制器中看到 1 条干净的线条,而不是一堆杂乱无章的逻辑,这些逻辑会堆积在您的控制器中,直到它融化您的大脑才能看到。
这是一个可能的方向(也是我更喜欢的方向)的一个非常基本的概述。
将您的网站分解成更小的组件非常有用,如果您使用的是 Kohana,我建议使用模块 ( http://kohanaframework.org/3.1/guide/kohana/modules ) 这样做,它们很棒。
我希望这个小片段有所帮助。