您可以在任何地方,通過Yii::$service
,使用服務,譬如
Yii::$service->cart->coupon->addCoupon()
,就是用cart服務下面的子服務下面的
addCoupon()方法。
那么如何制作一個服務呢?下面是詳細的步驟:
1.首先定義一個類,繼承fecshop\services\Service
<?php
namespace appfront\services;
use Yii;
use yii\base\InvalidValueException;
use yii\base\InvalidConfigException;
use fecshop\services\Service;
class Test extends Service
{
public $name;
protected function actionGet(){
return $this->name ;
}
}
2.添加配置:
在@app\config\fecshop_local_services文件夾下面添加一個文件Test.php內容為:
<?php
/**
* FecShop file.
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
return [
'test' => [
'class' => 'appfront\services\Test',
'name' => 'terry',
]
];
然后,就可以執(zhí)行
echo Yii::$service->test->get();
,輸入為:terry
,
這個是上面的配置中的值,在test服務實例化的時候,name參數會被注入到
Test類的類變量name
中,這個和Yii2的component(組件)的原理類似。
更多建議: