PHP fonksiyon Dinleme döndürülen değeri yakalamak için aramalar

1 Cevap php

Ben bizim iç sisteminin bilgisayarlar tarafından sunulan Web Hizmetleri API yararlanarak üzerinde çalışıyorum. Ben dahili SOAP sunan PHP üzerinden erişiyor duyuyorum.

API oturumu bazı oturum belirteçleri döndüren bir işlev uzak bir çağrı tarafından başlatılır; herhangi bir fonksiyon için her arama bundan sonraki isteği eşlik gereken, yeni bir oturum belirteci dönecektir.

Ben işin toplu yapıyor bir API Client sınıfı var; ne yapmak istiyorsunuz yapılan herhangi bir soap çağrı yeni bir oturum detayları ile API Client sınıf '$ session değişkeni güncellemek için emin olun, ve sonra birlikte verileri geçecek sayede şey kurmaktır.

Bugüne kadar bu yaptığını düşünebilirsiniz tek yolu, işlevi çalıştırmak yeni bir oturum belirteci güncellemek ve yine sonuçları döndürmek için bir __ çağrı fonksiyonu sarıcı ile, SoapClient sınıfını genişleterek yeni bir sınıf yaratıyor. Ben bu a) İş b) bu ​​konuda gitmek için en iyi yol olacaktır emin değilim. Sarıcı sınıf bir soap arama yapma ile aynı olacağını ve bu geri sonucunu görmeden sadece oturum belirteci güncelleştirmek, benzer bir sonuç dönecekti.

1 Cevap

Yani sağ hakkında, ben benzer bir şey yaptık geliyor. Muhtemelen gibi bir şey isteyeceksiniz:

class YourWrapperClass extends SoapClient
{
  private $session;

  private function mMakeSureSessionIsStarted()
  {
    if(!$this->session)
    {
      // code to start session here...
      $this->session = parent::startSession();
    }
  }

  public function __soapCall($method,array $arguments,array $options,$input_headers=null, array &$output_headers=null)
  {
     $this->mMakeSureSessionIsStarted();
     $arguments['session'] = $this->session;
     return parent::__soapCall($method,$arguments,$options,$input_headers,$output_headers);
  }
}

(% 100 olumlu değil ... bu doğru sözdizimi, ama yakın olduğunu düşünüyorum)

EDIT: senin yorumlarına dayanarak Revize.