3

解决感谢@JPR和调整感谢@PeterM

/* The only dependance is when */ class NuSoap extends CApplicationComponent

v-下面,最初的问题-v


我想知道如何使用nusoap 0.9.5在 yii 1.1.13 中创建基本扩展?我的简单代码如下所示:

<?php 
require("libs/nusoap-0.9.5/lib/nusoap.php");
// namespace
$ns = "https://my-namespace-site";

// client
$client = new soapclient('https://ip-to-webservice-server');

// header
$headers = "<credentials><ns1:username xmlns:ns1=\"$ns\">username</ns1:username>
<ns2:password xmlns:ns2=\"$ns\">password</ns2:password></credentials>";
$client->setHeaders($headers);

// searching 
$params = array(
    'local_user_array' => array(
        'limit' => 10
    )
);
$result = $client->call('local_users_search', $params, $ns );
if( $client->getError() ) {
    echo $client->getError();
}
else {
        foreach( $result['data'] as $offer ) {
            echo "<div>".$offer['firstname']."</div>";
        }
    }
?>

我的代码完美运行。现在,我如何$result在 yii 中使用才能在视图中显示结果?

最好的答案将是一个带有文件结构和代码以及有意义的解释的具体示例。

任何帮助将不胜感激。提前感谢您的帮助。我对此很期待 ;-)

PS:请不要引用任何指向 yiiframework 网站的链接,因为它没有多大帮助,因为我也知道如何搜索。

4

1 回答 1

4

创建一个从 CApplicationComponent 扩展的类。

class NuSoap extends CApplicationComponent 
{

    protected $params = array();
    protected $client, $ns;

    public function init() {
        require("libs/nusoap-0.9.5/lib/nusoap.php");
        $this->client = new soapclient('https://ip-to-webservice-server');
        $this->ns = "https://my-namespace-site";
    }

    public function getResults() {
        $results = $this->client->call(
            'local_users_search', 
            $this->params, 
            $this->ns 
        );
        return $results;
    }

    public function setParams(array $params) {
        $this->params = $params;
    } 

    // whatever other methods you need for it to work
}

然后在你的主配置文件中,在组件数组下:

 array(
    'nuSoap' => array(
        'class' => 'application.components.NuSoap' // name your class NuSoap.php
    )
    ......
)

确保在 main.php 配置文件中也导入了 application/components 或 application/extensions 目录。将您的类文件放在 application/components 或 applcation/extensions 目录中的 NuSoap.php 中。

你现在可以在 Yii 应用程序的任何地方引用你的组件:

Yii::app()->nuSoap->setParams($params);
$results = Yii::app()->nuSoap->getResults();

这应该足以让您朝着正确的方向开始。Yii 文档对于理解应用程序组件是如何工作的非常有帮助,但是由于你不想阅读它,你只需要猜测一些事情。如果你想使用 Yii,避免阅读文档是绝对没有意义的。

于 2013-07-04T08:57:59.100 回答