我是yii的新手,我必须为Enom api创建一个yii组件。我已经按照此URL Enom application进行了参考。它是在核心php中,我想在yii中实现它作为组件或模块。我已经这样做了
修改此处提到的类yii custom component。现在我的班级名称为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自定义组件。请帮我创建一个。
答案 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所以这可能需要调整,但可能会指出你正确的道路。