我是否应该使用对象进行此JS / PHP交互?这看起来不错吗?

时间:2010-01-27 15:56:02

标签: php oop

我正在构建的网站的一部分使用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;

2 个答案:

答案 0 :(得分:1)

对象与POST无关,或与JavaScript或其他任何内容交互。它们只是在服务器上组织代码的一种方式。

答案 1 :(得分:1)

对我来说看起来很好,但我绝对不会让它成为单身人士。 这似乎是对单例模式的一种常见误解:当你认为你只需要一个对象之一时就不会使用它,它是什么时候该对象的多个会导致问题,而你< em>需要以保证只有一个实例。

另外,我可能会将所有变量设为私有,并在需要访问它们时使用getter和setter(如果需要访问它们)。