【问题标题】:Using PHP MVC with OOP correctly正确使用带有 OOP 的 PHP MVC
【发布时间】:2012-11-13 14:13:34
【问题描述】:

上周左右我一直在阅读和学习 OOP 和 MVC,所以我想知道我是否走在正确的轨道上。

这是我目前拥有的示例:

index.php 解析从 Apache mod_rewrite (.htaccess) 传入的 URL。在这个文件中,我还首先包含了我的站点特定设置和定义的变量,然后包含相关的控制器文件,然后是视图。

<?php
// Include the site specific settings
require 'includes/settings.php';

// Include the HTML page header
require LIBPATH . 'views/page_header.php';

//Code to parse the url passed in from mod_rewrite
require LIBPATH . 'controllers/' . $require_url . '.inc.php';
require LIBPATH . 'views/' . $require_url . '.php';

// Include the HTML page footer
require PUBLICPATH . 'includes/page_footer.php'; 
?>

继续使用控制器: 在这个文件中,我确保设置了 $_POST 表单,然后调用模型(类)。

<?php
if (isset($_POST)) {
  $loginUser = new User();
  $loginUser->email = $_POST['email'];
  $loginUser->password = $_POST['password'];
  $returnArray = (json_decode($loginUser->select(), true));
  $_SESSION['userID'] = $loginUser->userID;
  $_SESSION['firstName'] = $loginUser->firstName;
  $_SESSION['lastName'] = $loginUser->lastName;
  $_SESSION['email'] = $loginUser->email;
  // Redirect code to admin area of the site
}
?>

现在模型(类)代码:

<?php
// Basically I'm interacting with the database and returning the data in a JSON encoded array. This is always where I check to make sure that values are set and correct before doing the database queries.
?>

这是使用 MVC 和 PHP OOP 的正确方法吗?

感谢您的意见。

【问题讨论】:

标签: php correctness


【解决方案1】:

我建议您使用框架。看看Code Igniter。它不是最好的 MVC 框架,但它是我唯一用于 php 的框架。

【讨论】:

  • +1 我用过几个框架,对我来说 CI 是最好的,可能很快就会尝试交响乐 2
  • 谢谢你的框架建议,但我真的很想学习MVC和OOP的概念,暂时不想使用框架。
  • codeigniter 是一个 MVC 框架。对于 MVC,它将为您提供文件结构以及模型、控制器和视图相互交互的方式。它的模型和视图都是通过类实现的。它实际上是你想要的一切。如果在 Code Igniter 中构建一些应用程序,到最后你应该对 OOP 和 MVC 有一定的了解。
  • 如果你使用 CodeIgniter 来学习 OOP 和 MVC,那你就错了。这是一段可怕的代码,充满了全局状态、php4 工件和违反 OOP 原则、概念和法律。即使按照 PHP 标准,它对 MVC 模式的解释也很糟糕。
猜你喜欢
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 2011-09-16
相关资源
最近更新 更多