matthew-p/yii2-services

该扩展为模型和控制器提供了非常简单易用的服务

3.1 2019-07-29 08:32 UTC

This package is auto-updated.

Last update: 2024-09-08 17:37:34 UTC


README

该扩展为模型和控制器提供了非常简单易用的服务

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一:

php composer.phar require --prefer-dist matthew-p/yii2-services "*"

或者在您的 composer.json 文件的 require 部分添加以下内容:

"matthew-p/yii2-services": "*"

使用

扩展安装完成后,只需在您的代码中按照以下方式使用它:

为模型创建服务(必须实现 IService 或扩展 MP\Services 中的任何服务)

use MP\Services\BaseModelService;

/**
 * ...
 *
 * @property SampleModel $model
 */
class MyCustomService extends BaseModelService
{
    /**
     * My simple method
     *
     * @return array
     */
    public function getSampleMethod(): array
    {
        return [];
    }
}

创建模型

...

use MP\Services\ImplementServices;

/**
 * Use services in model
 * ...
 *
 * Services
 * @property MyCustomService $customService
 */
class SampleModel extends ActiveRecord
{
    use ImplementServices;
    
    /**
     * @inheritdoc
     */
    public static function services(): array
    {
        return [
            'customService' => MyCustomService::class,
        ];
    }
    
    ...
}

并使用

$model = new SampleModel();
$model->customService->getSampleMethod();

对于控制器,一切相同,只是服务是从 BaseControllerService 继承的

测试

使用以下命令运行测试

./vendor/bin/phpunit