如何在Yii框架中创建Enom组件

时间:2015-03-26 05:26:04

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

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

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

  2. 修改此处提到的类yii custom component。现在我的班级名称为EnomService,界面名称为EnomInterface 我已经在我的课程中添加了这些行

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

  3. 修改了配置文件夹中的main.php文件:

    '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>';
    }
    
  5. 但它不起作用。我不太熟悉yii自定义组件。请帮我创建一个。

1 个答案:

答案 0 :(得分:0)

您使用的是Yii还是Yii2?

如果是Yii,那么您可以使用大量其他现有扩展来激励自己,例如:https://github.com/HeavyDots/yii-sms

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

我建议:

1)在&#34; components&#34;内创建一个新目录。命名为#34; enom&#34;

2)将https://github.com/comdexxsolutionsllc/MoondayFramework/tree/master/engine/enom

中的所有enom文件放在该目录中

3)创建名为&#34; Enom.php&#34;的组件类。在目录中,如下所示:

<?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所以这可能需要调整,但可能会指出你正确的道路。