gpt4 book ai didi

php - 没有框架的 OO PHP + Ajax

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:59 24 4
gpt4 key购买 nike

我打算使用 php 和 ajax 编写一个预订网站,我真的想不出如何将这两种工具与严格的面向对象设计结合起来。

我曾经使用 ajax 调用 php 网页,以程序方式返回正确的一组值(字符串、xml、json)。

对于面向对象编程,它应该如何工作?

我能想到的最简单的解决方案是通过 ajax 调用一个 php 页面,该页面应该只实例化正确类的新对象,然后使用接收到的数据对简单调用的结果进行回显,但这不会看起来很...

例如,要实现注册功能,我应该对 register.php 网页进行 ajax 调用,该网页反过来会实例化一个新的注册对象 r,然后使用正确的数据简单地调用 r.register()。

这个问题有更好的解决方案吗?

我想说明我不能使用任何 php 框架,因为它是一个教学项目,我有我应该遵守的规则。

另一个规范:我已经阅读了很多描述如何编写您自己的 mvc 框架的教程,但是这样做似乎对我的问题来说有点矫枉过正。

感谢您的帮助,我们将不胜感激。

最佳答案

正如您已经说过的,您实际上并不需要 PHP 框架,也不需要构建自己的 MVC 实现(特别是如果您正在使用 JSON 或 XML)。基本上你对如何做你的 OO 模型很自由,所以你的想法不一定是错误的。

我见过人们在 PHP 中使用的一些 OO 反模式:

  • 在类中使用全局变量
  • 创建没有成员的类导致方法调用的变量与生产风格相同
  • 直接访问 $_GET、$_POST 等。在类里面
  • 回显 html 输出(恕我直言,这应该在 View 模板中完成)

注册过程处理一些 $_POST 变量时你可能想做的事情的例子并返回 JSON 成功消息:

<?php

class Registration
{
private $_data;

public function __construct($registrationdata)
{
$this->_data = $registrationdata;
}

public function validate()
{
// ...
}

public function register()
{
// ...
if($this->validate())
return array("registered" => true, "username" => $this->_data["username"],
"message" => "Thank you for registering");
else
return array("registered" => false, "username" => $this->_data["username"],
"message" => "Duplicate username");
}
}

$reg = new Registration($_POST);
echo json_encode($reg->register());

?>

关于php - 没有框架的 OO PHP + Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3083660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com