matthew-p / yii2-services
Extension provide very simply use services for models and controllers
Package info
github.com/MatthewPattell/yii2-services
Type:yii2-extension
pkg:composer/matthew-p/yii2-services
Requires
- php: ^7.1
- yiisoft/yii2: ^2.0.13
Requires (Dev)
- phpunit/phpunit: ^7.2
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Extension provide very simply use services for models and controllers
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist matthew-p/yii2-services "*"
or add
"matthew-p/yii2-services": "*"
to the require section of your composer.json file.
Usage
Once the extension is installed, simply use it in your code by:
Create service for model (must implement IService or extend any of services in MP\Services):
use MP\Services\BaseModelService; /** * ... * * @property SampleModel $model */ class MyCustomService extends BaseModelService { /** * My simple method * * @return array */ public function getSampleMethod(): array { return []; } }
Create model:
... 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, ]; } ... }
And use:
$model = new SampleModel(); $model->customService->getSampleMethod();
For controllers, everything is the same, only the service is inherited from BaseControllerService
Tests
Run tests with command:
./vendor/bin/phpunit