XML PHP bir komut dosyası rutin olarak büyük miktarda veri alma iyi veri değişim biçimi midir?

4 Cevap php

(En az günde bir kez) düzenli olarak güncellenmesi gerekiyor özellikler ve açıklamalara dahil beraberindeki bilgi, ile 50.000-100.000 ürün SKU'ları varsa, XML bir veri değişim biçimi olarak gitmek için en iyi yolu nedir? Uygulama PHP ile yazılmış, ve (DB uygun konuma veri dökümü uygulama kanca kullanarak karşı) ben PHP'nin MySQL çağrılarına SimpleXML düşünüyorum. Sunucu Linux tabanlı olacak ve ben tam root erişimine sahip olacaktır. Ben en iyi uygulama olarak kabul edilir genel bir yaklaşım arıyorum - Ben bu ben topluluk wiki yapılmış yüzden oldukça genel bir soru olduğunu biliyorum. Bu konularda uygulama Magento.

4 Cevap

Size verilen senaryo için "en iyi" parametrelerini tanımlamak zorunda.

XML iki anlama gelir ki, ayrıntılı bir

  • Sen metadata dahil olmak üzere, veri hakkında ayrıntılı bir sürü sağlayabilmektedir
  • Dosya boyutu büyük olacak

XML ile kazanç diğer avantajı daha gelişmiş ayrıştırma / seçme "out-of-the-box" XPath gibi araçlar ile.

Ama seçebilirsiniz birçok başka biçimleri, kendi çıkarları ve disadvange ile her vardır

Ve birçok diğerleri.

Benim nokta Eğer sistem (hız? Karakter seti desteği? Insan-okunabilirlik?) Için neyin önemli olduğunu anlamaya ve her iki taraf için uygun olacak bir biçimini seçmeniz gerekir olmasıdır.

XML tek gerçek aşağı tarafı çok ayrıntılı olmasıdır. XML dosyalarını diğer biçimlere göre genellikle çok büyük. Baş o (insanlar için) okumak ve (yazılım) ayrıştırmak için nispeten kolay olmasıdır. (Her kaydın boyutunu bilmeden) sadece 100K kayıtları ile ben XML ile gitmek istiyorum düşünüyorum.

XML çok iyi sıkıştırmak rağmen JSON, XML çok daha az yer kaplıyor. XML de olgun kütüphaneleri ve araçları bir çok avantajı vardır.

3. parti kaynakları ile veri alışverişi Eğer bir şema ile orada XML doğrulamak isteyebilirsiniz. JSON için bu yok.

Şahsen ben çoğu zaman XML kullanarak sonuna kadar. Alan bir sorun olup olmadığını XML veri gzip sıkıştırma uygulayabilirsiniz.

Ben şu anda bir e-ticaret projesi üzerinde bir ithalat biçimi olarak XML kullanın. Şu anda 10.000 üzerinde ürün özellikleri ve açıklamaları vardır ve ve oldukça hızlı veri üzerinde yineleme olacaktır. Ama, bu konuda başka seçenek yok.

(Ben yine de formatını mesajlaşma bulunuyor gibi SOAP XML kullanır gibi bu, performans maliyet eklersiniz düşünüyorum rağmen) SOAP kullanarak sadece ham XML almak için bir alternatif olacağını, ancak, bir doğal PHP türü olarak veri alabilirsiniz Böyle bir SimpleXMLElement nesnesi oluşturmak için ihtiyaç adım veritabanı tarafına ekleme için DAL doğrudan geçebileceği bir dizi olarak.