Ben bina olduğum bir sitenin parçası alır ayrıştırır, bir XML dosyası sıralar ve paginates ve sonuçları döndürür bir PHP komut dosyası vurmak için bir javascript ajax isteği kullanır. Değişkenler POST değişkenleri, alınan dezenfekte ve atandın olan ben, vb portföyünde LimitIterator, tarafından ele, sıralama, SimpleXML dosyayı yükleme ve gerekli bit kapmak için bir XPath sorgusu kullanarak, PHP tarafında oldukça yalındır moda bu yapmış
Bu nesnenin inşa edilmelidir nasıl, belki de en önemlisi, bir nesneye sarılmış olmalı ve ne merak ediyorum olduğunu.
Kod sitenin farklı bölgelerinde farklı istekleri bir dizi (sıralama yönü, özel XPath sorgusu ve belirli XML dosyası gibi) oldukça küçük değişiklikler ile, kullanılır bu yüzden belki yeniden nesnesine dönüştürerek olabilir şüpheleniyorsanız gitmek için yolu? Sen ne düşünüyorsun? Ben herhangi bir şey için dikkat etmelidir? Bu özel bir yolu (gibi, onların çeşitli reassigned değişkenler içine onları ayırmak zorunda o zaman bir Singleton olması gerekiyor ya da ben bir yapıcı içine POST değişkenleri geçebilir ve) ele alınmalıdır? Ben bir nesne yönelimli bir şekilde yapıyor ve ben (bu bir sahte kod örnek sıralamak ve bazı şeyler benim kullanımı biliyorum, kapalı olması gerekiyordu böyle bir şey düşünüyordum ile doğru yolda olduğumu Temelde ben merak ediyorum. Ben düzgün $ this-> foo kullanıyorum ya ben düzgün özel / kamu kullanıyorum gibi iyileştirme önerileri olun):
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;