微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从php的角度来看调用控制器的动作

如何解决从php的角度来看调用控制器的动作

| 在PHP中,当加载页面时,在没有任何框架的情况下通过MVC模式工作时,再次进行CRUD处理时,文件应转到控制器。那么,如何将视图页面连接到控制器,因为视图页面就像HTML一样简单?控制器通过ActionView呈现视图页面,因此如何将视图页面链接到控制器以进行CRUD处理。     

解决方法

每个MVC请求都要经过相同的Controller-> Model-> View周期。从这个意义上讲,每个视图始终都是“联系”控制器,只是不在同一请求中。 用户打开URL
/posts/add
PostsController捕获一些数据并呈现视图 该视图由一个表单组成,可能显示来自控制器的一些数据 最终的HTML发送给用户 一个请求周期到此结束。浏览器显示HTML表单。提交表单时,新请求将发送到服务器。 表格过帐到
/posts/add
PostsController抓取数据,使用模型保存 如果一切正常,则控制器将呈现一个“谢谢”页面(或执行其他任何操作) 如果它不起作用,则控制器将再次呈现表单视图,并填充错误消息 最终的HTML发送给用户 这样再次完成了循环。在MVC周期内,视图从不与控制器对话。它只是输出用户看到的HTML。然后,用户向控制器发起新请求。     ,说您有以下几点: /m/User.class.php /v/newUser.php /c/UserController.class.php 我通常将其分为三层:一个类中的模型,一个给定业务对象的封装良好的高内聚性类。此类负责用户的对象模型,而控制器负责实现CRUD方法。这样就可以简单地将关注点分离,促进代码重用等。然后,您可以在所需的任何视图中插入控制器,例如说“ newUser.php \”以查看用户。 由于PHP是一种脚本语言,因此需要在使用之前导入依赖项。因此,查看依赖关系树,我通常使用\“ require_once \”将模型导入控制器,并将控制器导入视图。 User.class.php ----- 类用户{    私人$ username;
 User($newUsername) {
     $this->username = $newUsername;
 }
} userController.php ---------------(考虑以下方向“ app”位于PHP INCLUDE_PATH变量下) require_once(\“ app / m / User.class.php \”); 类UserController {
public static createUser($newUsername) {
    return new User($newUsername);
}
} newUser.php ----------(考虑以下\ app的方向位于PHP INCLUDE_PATH变量下)
require_once(\"app/c/UserController.class.php\");

$newUser = $UserController.createUser(\"username\");

echo \"<b>\" . $newUser;
除此之外,我使用像Propel这样的ORM系统为用户提供持久性。我在使用Propel和手动MVC的硕士期间实现了一个大型PHP系统。有关此结构的更完整示例,请访问http://java.net/projects/infinity-metrics/sources/svn/content/trunk/ app / classes / infinitymetrics / controller / UserManagementController.class.php作为控制器的示例。这是使用此控制器的视图示例:http://java.net/projects/infinity-metrics/sources/svn/content/trunk/app/user/student/signup-step1.php。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。