1

我是 yii 的新手,我必须为 Enom api 创建一个 yii 组件。我已经按照这个 url Enom application for refrence。它在核心 php 中,我想在 yii 中实现它作为组件或模块。我已经这样做了

  1. 将文件接口放在yii组件文件夹中。

  2. 修改此处提到的类yii 自定义组件。现在我的类名EnomService和接口名是EnomInterface 我已经在我的类中添加了这些行

    使用 Yii;使用 yii\base\Component; 使用 yii\base\InvalidConfigException;

  3. 修改main.phpconfig文件夹中的文件:

    'import'=>array(
        'application.models.*',
        'application.components.*',
     ),
    
    'defaultController'=>'post',
    
    // application components
    'components'=>array(
        'user'=>array(
            // enable cookie-based authentication
            'allowAutoLogin'=>true,
        ),
        'mycomponent' => [
    
            'class' => 'app\components\EnomService',
    
            ],
    
  4. 以这种方式调用控制器。

    public function actionEnom () 
    {
         echo "asdgsgsag";
         $enom = new EnomService('manoj_rudra', 'manoj@41@', false, true);
         $enom->debug = true;
         $result=   Yii::$app->EnomService->checkDomain('systurn', 'com', true);
         //$result = $enom->checkDomain('systurn', 'com', true);   // This enables domain spinner
         echo '<pre>';
         var_dump($result);
         echo '</pre>';
    }
    

但它不起作用。我对 yii 自定义组件不太熟悉。请帮我创建这个。

4

1 回答 1

0

你用的是 Yii 还是 Yii2?

如果是 Yii,那么你可以使用很多其他现有的扩展来激励自己,例如这个:https ://github.com/HeavyDots/yii-sms

至于 Yii2,你可以做类似的事情,查看 YiiFramework 网站上已经存在的 Yii2 扩展,你可以看到组件类是如何定义的。

我会推荐:

1)在“组件”中创建一个名为“enom”的新目录

2) 将来自https://github.com/comdexxsolutionsllc/MoondayFramework/tree/master/engine/enom的所有 enom 文件放在该目录中

3)在目录中创建名为“Enom.php”的组件类,如下所示:

<?php

// include enom service class
require(dirname(__FILE__).'/class.EnomService.php'); 

namespace components\enom;
use Yii;

class Enom extends \yii\base\Component
{
    // define private property to store service
    private $service;

    public function init()
    {
        parent::init();

        // init the service
        $this->service=new EnomService('manoj_rudra', 'manoj@41@', false, true);
    }

    /**
      * @return     EnomService
      */
    public function getService() {
        return $this->service;
    }

}

?>

4)然后在配置中正确定义组件

'enom' => [

        'class' => 'app\components\enom\Enom',

        ],

5)最后像这样使用它

Yii::$app->enom->getService()->checkDomain

正如我之前所说,还没有使用 Yii2,所以这可能需要调整,但可以为您指明正确的道路。

于 2015-03-27T02:41:40.693 回答