Я новичок в yii и мне нужно создать компонент yii для Enom api. Я следовал этому URL Приложение Enom для справки. Это в ядре php, и я хочу реализовать это в yii как компонент или модуль. Я сделал это таким образом
положить файлы интерфейс а также учебный класс в папке компонентов yii.
изменить класс, как указано здесь пользовательский компонент yii . Теперь мое имя класса EnomService
и имя интерфейса EnomInterface
я добавил эти строки также в моем классе
использовать Yii;
используйте yii \ base \ Component;
использовать yii \ base \ InvalidConfigException;
изменил 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',
],
вызывая в контроллере таким образом.
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. Пожалуйста, помогите мне создать это.
Вы используете 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, так что это может потребовать настройки, но может указать вам правильный путь.
Других решений пока нет …