在模型中使用soap客户端

时间:2012-07-18 10:08:22

标签: cakephp soap nusoap

我应该通过WSDL(和NuSOAP)从其他服务器获取可用的产品列表及其价格。

不需要视图(我认为没有控制器);所以我创建了一个没有表的模型(因为我不想存储服务器数据)

在我的模型文件的开头使用App:import('Vendor', 'path_to_nusoap.php')

让我们看看我的模特:

<?php
App::uses('AppModel', 'Model');
App::import('Vendor', 'nusoap' . DS . 'nusoap.php');
/**
 * MyModel Model
 *
 */
class MyModel extends AppModel {
    public $useTable = false;

    public $client = new nusoap_client('url', 'WSDL');

    public function products(){
        $products = $client->call('getProductsList');
        ////
        return $products;
    }
    public function prices(){
        $prices = $client->call('getPricesList');
        ////
        return $prices;
    }
}

但它会导致错误(在该行:public $client

现在,问题:

  1. 如何解决这个错误? (使用承包商功能?)
  2. 我在模型上使用此功能是错误的吗? (而不是控制器)
  3. 对不起我糟糕的英语。 感谢。

1 个答案:

答案 0 :(得分:0)

你不能在方法范围之外创建一个对象!

使用构造函数:

public $Client;

public function __construct() {
    $this->Client = new nusoap_client('url', 'WSDL');

}

public function products() {
    $products = $this->Client->call('getProductsList');
    return $products;
}