Bir bakım ve kod organizasyonu açısından, PHP5, bir web hizmeti gelen XML veri nesneleri ve sınıfları tanımlamak / oluşturmak için mantıklı mı?
Twitter's API, bir örnek olarak, ben her API yöntemi (statüleri, kullanıcılar, direct_messages, vb) için bir sınıf olurdu kullanma. statuses/public_timeline
a>, böyle bir şey olurdu için:
class Statuses {
public $status = array(); // an array of Status objects
public function __construct($url) { // load the xml into the object }
}
class Status {
public $created_at, $id, $text; // and the rest of the attributes follow...
}
$public_timeline = new Statuses('http://twitter.com/statuses/public_timeline.xml');
echo $public_timeline->status[0]->text;
Yoksa ürün bu gibi erişilebilir diye, bir ilişkisel diziye şeyi dökümü daha iyidir:
// the load_xml function is just something that will dump xml into an array
$public_timeline = load_xml('http://twitter.com/statuses/public_timeline.xml');
echo $public_timeline['statuses']['status'][0]['text'];
İlk tasarım:
- Strictly nesne yönelimli ilkeler aşağıdaki
- Derlenmiş diller için daha uygun bir yaklaşım gibi görünüyor
İkinci tasarım:
- API değiştirilmiş ise bir çok daha az bakım ihtiyacı olacaktır. API XML bir öznitelik ekler varsa, ilgili sınıf ilk tasarım güncelleştirilmesi gerekir.