yii - 如何使用yii 1.1.13中的nusoap 0.9.5创建完全独立的扩展

时间:2013-07-04 08:36:12

标签: php yii yii-extensions yii-components yii-modules

已解答感谢@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>";
        }
    }
?>

我的代码完美无缺。现在,我可以在yii中使用$result来在视图中显示结果吗?

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

非常感谢任何帮助。感谢您的帮助。我很期待它; - )

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

1 个答案:

答案 0 :(得分:3)

创建一个从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
}

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

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

确保还在main.php配置文件中导入了应用程序/组件或应用程序/扩展目录。将您的类文件放在NuSoap.php的application / components或applcation / extensions目录中。

您现在可以在Yii应用中的任何位置引用您的组件:

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

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