php tasarım soru

0 Cevap php

Ben şu sınıf vardır:

class Apiconnect {

  const URL = 'https://someurl.com/api.php';
  const USERNAME = 'user';
  const PASSWORD = 'pass';

/**
*
* @param <array> $postFields
* @return SimpleXMLElement
* @desc this connects but also sends and retrieves the information returned in XML
*/

 public function Apiconnect($postFields)
 {
   $postFields["username"] = self::USERNAME;
   $postFields["password"] = md5(self::PASSWORD);
   $postFields["responsetype"] = 'xml';
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, self::URL);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_TIMEOUT, 100);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
   curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
   $data = curl_exec($ch);
   curl_close($ch);
   $xml = new SimpleXMLElement($data);
   if($xml->result == "success")
   {
     return $xml;
   }
   else
   {  
    return $xml->message;
   }
 }
} 

Now I would like to use this connection class on other methods on other classes that will use it.

Yani, bu gibi (soyut burada uygun olup olmadığından emin değil) bir sınıf yapıyor düşünüyordum:

abstract class ApiSomething
{
  protected $_connection;
  protected $_postFields = array();

  /**
   * @desc - Composition.
   */

  public function __construct()
  {
     require_once("apiconnect.php");
     $this->_connection = new Apiconnect($this->_postFields);
  }

  public function getStuff()
  {

   //this is the necessary field that needs to be send. 
   //Containing the action that the API should perform.
   $this->_postFields["action"] = "dosomething";
   ...
   }

} 

Ben "eylem" API içine göndermek böylece getStuff üzerinde mülkiyet $ _connection () yöntemini kullanmanız gerekir. Emin değilim ancak, nasıl ki başarmak olabilir.

Herhangi bir yardım lütfen?

0 Cevap