Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 3.562 pregleda

Najnovija ↓

wcf and php (soap) 15.01.2018. u 11:22 · pre 107 meseci #1
Pozdrav svima.

Da li neko radi u ovoj kombinaciji kao sto pise u naslovu?
Imam na raspolaganju jedan WCF servis koji ima implementirane neke metode ali klijent mora biti razvijen u PHP.
Znam da ima u PHP razvijen SOAP klijent i jednostavno se napravi ali problem je sljedeci:
Vecina ovih metoda koje su razvijene u WCF servisu .NET-a vracaju liste koje bi trebalo da prikazem u PHP klijentu i potrebna je neka klasa koja bi konvertovala listu u c# u array u PHP.
Ljudi sta predlazete?

Hvala unapred.
Re: wcf and php (soap) 16.01.2018. u 10:36 · pre 107 meseci #2
Nisam PHP strucnjak ali bi mogao da parsiras response od WCF/SOAP servisa kao stadardni XML u PHP...
Re: wcf and php (soap) 16.01.2018. u 11:16 · pre 107 meseci #3
Moguce.
Inace ja mogu iz PHP da vidim sve metodek, tj. da ih izprintam ali ne razumem kako odstampati nesto tipa lista<T> u PHP-U.
Re: wcf and php (soap) 16.01.2018. u 22:24 · pre 106 meseci #5
Hvala vam sto ste se ukljucili.

Od SOAP-a dobijem tzv. WSDL jezik. Slicno XML-u. Napominjem da je ovaj servis napisan u C# i pri tome koristen WCF (Windows Communication Foundation) model servisa.

Ne znam da li me razumete i da li uopste ima veze sto metode koje tamo cupaju neke podatke iz baze vracaju C# Liste<T>.

Npr. imam metodu GetAllPatient (int id) i kada je izvrsim u bilo kom C# klijentu ja dobijem listu sa

mnogo propertija.

Npr. GetAllPatient (26) dobijem listu koja ima ove propertije:

FirstName,LastName,Adress,Country,DateInvoice,Payment itd itd.

Glavno pitanje je kako da prihvatim tu listu u PHP klijentu?

Nadam se da nisam zbunio ovim.
Hvala jos jednom.
Re: wcf and php (soap) 16.01.2018. u 23:27 · pre 106 meseci #6
Code:

<?php 
require_once('nusoap/lib/nusoap.php');

$soap_client = new nusoap_client("http://mojservis.com:8080/Service.svc?wsdl",true);

$p_parameters = array('id'=>26);

$result = $soap_client->call('GetAllPatient',array($p_parameters ));

print_r($result);

?>


Evo nekog primera sa nusoap klasom.

Moj niz $result posle stampanja nema nikakav sadrzaj.

Re: wcf and php (soap) 16.01.2018. u 23:56 · pre 106 meseci #7
A sta zapravo dobijes kada pozoves takav metod?

Kog tipa ti je $result? Sta dobijes sa get_class($result);
Mozes li da uradis nesto ovako?
Code (php):

echo get_class($result);
foreach ($result as $item) {
    echo "$item\n";
}
 
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: wcf and php (soap) 17.01.2018. u 07:31 · pre 106 meseci #8
Metod get_class u tom slucaju vraca upozorenje:

Code:
Warning: get_class() expects parameter 1 to be object,boolean ...


Ako kazem ovo:
Code:
print_r($result);


nema nista kao rezultat

Ako kazem ovo:
Code:

var_dump($result);


Onda dobijem rezultat
Code:
bool(false)


Napominjem da je promenljiva $soap_client u stvari asocijativni niz koji se napunio iz wsdl-a.
Ako je odstampam vidim niz sa svim metodama koje servis ima.

Problem je sto ovo ovako ne moze da stoji:
Code:
$result = $soap_client->call('GetAllPatient',array($p_parameters ));


Metoda GetAllPatient(); vraca listu objekata a napisana je u C#.

Hvala jos jednom na savetima.


Re: wcf and php (soap) 17.01.2018. u 09:40 · pre 106 meseci #9
Hm, vidim sada da je kod tebe drugacije od primera koji sam ja nasao. Pogledaj http://www.rizalalmashoor.com/...alling-a-wcf-service-from-php/
Tu se metod poziva direktno na SoapClient-u a ne prosledjuje ime metoda kao string parametar.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: wcf and php (soap) 17.01.2018. u 10:02 · pre 106 meseci #10
Da jeste ali nista se ne desava.

Code:

$sampleData->SampleProperty = "id";

$parameters->id = 26;
$parameters->sampleData = $sampleData;

$result = $soapClient->GetAllPatient($parameters);



Da li si mislio na ovo? To je za moj primer.
Re: wcf and php (soap) 17.01.2018. u 10:21 · pre 106 meseci #11
Na to sam mislio. Medjutim, ako je sve sto trebas da prosledis id, ne treba ti $sampleData. Probaj sledece dve varijante:
Code (php):

$parameters->id = 26;

$result = $soapClient->GetAllPatient($parameters);
 


i

Code (php):

$result = $soapClient->GetAllPatient(26);
 


Ne radim sa PHP-om pa ne mogu sam da isprobam pa ti zato ovako dajem opcije na slepo da isprobas :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: wcf and php (soap) 17.01.2018. u 11:23 · pre 106 meseci #12
Razumemo se, probao sam to isto jer nemam nista za proslediti nego id.

Evo rezultata print_r($result):

Code:
stdClass Object ( [GetAllPatientResult] => stdClass Object ( ) )


Citao sam da ovaj SOAP client ne radi bas kako valja.

Zato sam koristio nusoap klasu prvobitno. Ne znam da li si premetio da sam je ukljucio gore na vrhu :)

Pogledaj client.php za nusoap klasu:

https://www.developer.com/lang...ces-with-php-using-nusoap.html



Re: wcf and php (soap) 17.01.2018. u 12:08 · pre 106 meseci #13
OK, sad kad si dobio neki konkretan rezultat, probaj ako je moguce da stavis breakpoint i vidis sta on ima od metoda, property-a i sl. Ili, ako nije moguce, probaj preko refleksije.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme