我正在构建的网站的一部分使用javascript ajax请求来访问PHP脚本,该脚本检索,解析,排序和分页并返回XML文件的结果。我在PHP方面以一种非常简单的方式完成了这项工作,其中变量POST变量被检索,清理和重新分配,SimpleXML加载文件并使用xpath查询来获取所需的位,由SPL的LimitIterator处理排序等。 / p>
我想知道的是,这应该包含在一个对象中,也许最重要的是,应该如何构造这个对象。
使用代码,对网站不同部分的许多不同请求进行相当小的更改(如排序方向,特定xpath查询和特定XML文件),因此我怀疑可能将其转换为可重用的对象可能是要走的路?你怎么看?我应该留意什么吗?应该采用任何特殊的方法(比如,它需要是一个Singleton还是我可以将POST变量传递给构造函数然后将它们分成各种重新分配的变量)?基本上我想知道我是否在面向对象的方式做正确的道路,我正在考虑这样的事情(这是一个伪代码的例子,我知道,我对某些事情的使用是关闭的。请提出改进建议,例如我正确地使用$ this-> foo,还是正确使用公共/私人?):
class GetXMLData() {
public $start;
public $end;
public $xmlfile;
public $limited;
private $results;
public function __constructor($_POST, $xmlfile) {
$this->start = sanitize($_POST['start']);
$this->end = sanitize($_POST['end']);
$this->xmlfile = $xmlfile;
}
//load the xml file
private function loadFile($this->file) {
return simplexml_load_file($this->file);
}
private function sorting(){
// an internal sorting function that could use loadFile() perhaps and then return $results to the pagination function?
}
private function paginate($this->results) {
$this->limited = new LimitIterator(new ArrayIterator($this->results), $start, $end);
return $this->limited
}
}
$stuff = new GetXMLData($_POST, $xmlfile);
return $stuff;
答案 0 :(得分:1)
对象与POST无关,或与JavaScript或其他任何内容交互。它们只是在服务器上组织代码的一种方式。
答案 1 :(得分:1)
对我来说看起来很好,但我绝对不会让它成为单身人士。 这似乎是对单例模式的一种常见误解:当你认为你只需要一个对象之一时就不会使用它,它是什么时候该对象的多个会导致问题,而你< em>需要以保证只有一个实例。
另外,我可能会将所有变量设为私有,并在需要访问它们时使用getter和setter(如果需要访问它们)。