Как создать компонент Enom в фреймворке Yii

Я новичок в yii и мне нужно создать компонент yii для Enom api. Я следовал этому URL Приложение Enom для справки. Это в ядре php, и я хочу реализовать это в yii как компонент или модуль. Я сделал это таким образом

  1. положить файлы интерфейс а также учебный класс в папке компонентов yii.

  2. изменить класс, как указано здесь пользовательский компонент yii . Теперь мое имя класса 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>';
    }
    

Но это не работает . Я не очень знаком с пользовательским компонентом yii. Пожалуйста, помогите мне создать это.

1

Решение

Вы используете Yii или Yii2?

Если это Yii, то вы можете использовать множество других существующих расширений, чтобы вдохновить себя, например, это: https://github.com/HeavyDots/yii-sms

Что касается Yii2, вы можете сделать что-то подобное, посмотрите на уже существующие расширения для Yii2 на веб-сайте YiiFramework и вы можете увидеть, как определяются классы компонентов.

Я бы посоветовал:

1) Создайте новый каталог внутри «компонентов» с именем «enom»

2) Поместите в этот каталог все ваши файлы enom из https://github.com/comdexxsolutionsllc/MoondayFramework/tree/master/engine/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, так что это может потребовать настройки, но может указать вам правильный путь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]