承接 pribolshoy/yii2-repository 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pribolshoy/yii2-repository

最新稳定版本:v0.0.0.1

Composer 安装命令:

composer require pribolshoy/yii2-repository

包简介

Public library

关键字:

README 文档

README

Библиотека для реализации паттерна Repository в Yii2 приложениях. Адаптация пакета pribolshoy/repository для работы с Yii2 ActiveRecord.

Установка

composer require pribolshoy/yii2-repository

Требования

  • PHP >= 7.4
  • Yii2 >= 2.0
  • Пакет pribolshoy/repository

Основные компоненты

AbstractARRepository

Абстрактный класс для создания репозиториев, работающих с ActiveRecord моделями.

Пример использования:

<?php

namespace app\repositories;

use pribolshoy\yii2repository\repositories\AbstractARRepository;
use app\models\User;

class UserRepository extends AbstractARRepository
{
    protected ?string $model_class = User::class;

    protected function defaultFilter()
    {
        $this->addFilterValueByParams('status', 'active');
        $this->addFilterValueByParams('limit', 25);
        $this->addFilterValueByParams('page', 1);
    }

    protected function addQueries()
    {
        if ($this->existsFilter('status')) {
            $this->getQueryBuilder()->andWhere(['status' => $this->getFilter('status')]);
        }

        if ($this->existsFilter('email')) {
            $this->getQueryBuilder()->andWhere(['like', 'email', $this->getFilter('email')]);
        }

        return $this;
    }
}

AbstractARService

Абстрактный класс для создания сервисов, работающих с репозиториями.

Пример использования:

<?php

namespace app\services;

use pribolshoy\yii2repository\services\AbstractARService;
use app\repositories\UserRepository;

class UserService extends AbstractARService
{
    protected ?string $repository_class = UserRepository::class;

    protected function init()
    {
        // Инициализация сервиса
    }
}

Драйверы кеша

Библиотека поддерживает несколько драйверов кеша:

RedisDriver

Использует Redis для кеширования данных.

protected ?string $driver = 'redis';
protected ?string $driver_path = "\\pribolshoy\\yii2repository\\drivers\\";

FileDriver

Использует файловый кеш Yii2.

protected ?string $driver = 'file';
protected ?string $driver_path = "\\pribolshoy\\yii2repository\\drivers\\";

MysqlDriver

Использует MySQL таблицу для кеширования.

protected ?string $driver = 'mysql';
protected ?string $driver_path = "\\pribolshoy\\yii2repository\\drivers\\";

Использование

Создание репозитория

$repository = new UserRepository([
    'status' => 'active',
    'limit' => 10,
    'page' => 1
]);

$users = $repository->search();

Работа с сервисом

$service = new UserService();
$items = $service->getItems();

Особенности

  • Поддержка пагинации через Yii2 Pagination
  • Кеширование результатов запросов
  • Гибкая система фильтрации
  • Поддержка сортировки
  • Работа с ActiveRecord моделями

Лицензия

BSD-3-Clause

Автор

Nikolay Pribolshoy pribolshoy@gmail.com

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2023-12-18