DİNLENME kullanarak PHP oluşturma nesneleri

8 Cevap php

Ben üreten duyuyorum bazı web bakan işlevler için bir REST hizmet veya bir SOAP servisini kullanmak gerekip gerekmediğini karar yapmaya çalışıyorum. Bu karar kolayca uygulanması REST hizmetini kullanabilirsiniz olup olmadığını dayanmaktadır. PHP nesne modeli kodlama gün geçirmek istemiyorum ama ben, DİNLENME kullanmayı tercih ediyorum.

Hizmetler. NET'te geliştiriliyor ancak PHP ağırlıklı olarak tüketilen olacaktır.

Entegrasyon kolaylığı: temelde bir noktaya kadar geldi. PHP SOAP kullanarak ben nesne modelini üretecek olan NuSOAP kütüphane kullanabilirsiniz.

Ancak REST ile bu mümkün olup olmadığını onlar belgeye daha kolay gibi REST hizmetleri kullanmak ve genişletmek ve aynı zamanda JSON yetenekleri olurdu, kolayca bu modeli oluşturmak için bir yol bulmak gibi olamaz.

Ben o DİNLENME hizmeti ile seri olabilecek bir XML dosyası / şemasından PHP bir nesne modeli oluşturabilir miyim?

8 Cevap

Hatta sınıf yol gitmek zorunda olmayabilir. Basitçe SimpleXML kullanarak verileri yemek ve sonra bir nesne sanki o hareket. Eğer json varsa ya da, json_decode($data, TRUE) (Parantez içindeki özellikleri olmadan) aynı şeyi yapardı.

$ch = curl_init("http://example.com/some/rest/endpoint");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($ch);

$obj = simplexml_load_string($data);
print $obj->some->data->you['need'];

XML gibi bir şey olsaydı o here yazdırmak istiyorum

<_>
 <some>
  <data>
   <you need="here" />
  </data>
 </some>
</_>

Ben diffent diller arasında çalışmak için biraz sorun oluyor sabun vardı (PHP <> JAVA ve PHP <>. NET)

SOAP ile gidiş varsa, WS-I (Web Services Interoperability) kontrol etmek isteyebilirsiniz

Sizin tarif gereksinimlerine göre SOAP dünyada sadık olmalıdır. DİNLENME dağıtılmış arayüzü mimariyi sadece bir tarzı olduğunu unutmayın. O arayüzü işlevselliği nasıl uygulanır hakkında hiçbir şey söylemez. Kesinlikle nesnelere eşleme şemaları için gerek yoktur.

Eğer WCF REST Starter kit istemci araçları bakarsanız bir CLR türü olarak XML yapıştırın işlevselliği bulacaksınız, söyledikten sonra. Bu örnek XML belgesine dayanan bir seri hale sınıf oluşturarak bir en iyi tahmin yapacağız.

Ayrıca, ADO.NET Data Services açıklayan ne size PHP sitenize sığınakta veri hizmetlerini teşhir hızlı bir şekilde sağlayacaktır.

....

İşte size bir soru? . Net hizmetlerine bir PHP sitesi tarafından tüketilen olacak o zaman neden "web bakan" olarak. Net hizmetlerini tarif olur. Açıklamasından, bu hizmetler daha web sitesinin özel bir uygulama ayrıntı gibi gelebilir.

Senin yerinde olsam:

  • NuSOAP araçlar sadece XSD'nin kullanılabilir olmadığını araştırmaktır. . NET dünyada, svcutil (veya ASMX günlerde, wsdl.exe) proxy sınıfları üretmek. Wsdl dosyaları sindirmek için. Ama sadece varsa. Xsd dosyaları, sen xsd.exe aracını veya kompresörlü XSD.exe gibi "satış sonrası" XsdObjectGen, kullanabilirsiniz. Aynı şeyi NuSOAP benzer araçlar var mı? Belki bu açıktır ve zaten bunu yaptık.
  • dışarı kaydırmak değilse, bir kukla WSDL üretmek ve bunu içine var XSD şeyler. Ardından, NuSOAP araçları ile. Wsdl dosyasını işlemek. Oluşturulan kodu kapmak ve sabun zarf ve iletişim şeyler kaldırmak, ancak nesne serileştirme şeyler korumak. Emin bu yolu PHP, mümkün (veya C?) Değilse kod NuSOAP araçları tarafından oluşturulur. . NET'te, bu farklı parçalarını kırmak kolaydır.

Gerisinde Bütün fikir SOAP ile gibi hackish "nesne modelleri" ile kullanmak kalmamasıdır. Sorun yanlış sistemini kullanmaya çalışıyoruz olduğunu :)

Eğer nesne modellerini istiyorsanız, sabun kullanın.

Web-dostu API'ler istiyorsanız, DİNLENME kullanın.

Entegrasyon kolaylığı için, ben bir REST API ile gitmek istiyorum. Böyle güçlü bir kongre olduğundan, entegre herkes önce REST ile çalışmış kim için nispeten basit olmalıdır.

Yani ben bu i arıyorum bir şey olabileceğini düşünüyorum. ama otomasyon sistemi çeşit bunun için orada olup olmadığını bilmek istiyorum

http://devzone.zend.com/article/1713#Heading11 buldum

Extending Classes

While the above examples were all doable with PHP 4 and the domxml extension (only the API was a little bit different), the ability to extend DOM classes with your own code is a new feature of PHP 5. This makes it possible to write more readable code. Here's the whole example again, re-written to use the DomDocument class:

 class Articles extends DomDocument {
     function __construct() {
         //has to be called!
         parent::__construct();
     }

     function addArticle($title) {
         $item = $this->createElement("item");
         $titlespace = $this->createElement("title");
         $titletext = $this->createTextNode($title);
         $titlespace->appendChild($titletext);
         $item->appendChild($titlespace);
         $this->documentElement->appendChild($item);
     } } $dom = new Articles(); $dom->load("articles.xml");
 $dom->addArticle("XML in PHP5"); print
 $dom->save("newfile.xml");

Ben bu aradığınız tam olarak ne olduğunu düşünüyorum.

http://www.slideshare.net/matthieua/easy-rest-service-using-php-reflection-api-presentation