承接 pektiyaz/repository-contracts 相关项目开发

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

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

pektiyaz/repository-contracts

最新稳定版本:v1.0.0

Composer 安装命令:

composer require pektiyaz/repository-contracts

包简介

Collection of repository contracts

README 文档

README

This repository defines a reusable and extensible set of contracts (interfaces) for implementing the Repository pattern in a clean and consistent way across Laravel applications.

✨ Purpose

These contracts provide a foundation for working with data access layers in a decoupled, testable, and flexible manner. By enforcing a contract-based structure, you can:

  • Separate business logic from data access logic
  • Write cleaner and more maintainable code
  • Easily swap implementations or mock repositories in tests
  • Support advanced querying via query filters

📦 Installation

You can install the Repository Contracts package using Composer:

composer require pektiyaz/repository-contracts

📦 Interfaces

RepositoryContract

This is the primary interface for a repository. It defines common methods for working with entities:

🔍 Basic Methods

  • findById($id)
  • findOneBy(array $conditions)
  • findAllBy(array $conditions)
  • findAll()

✏️ Write Operations

  • create(array $data)
  • update($id, array $data)
  • delete($id)
  • bulkCreate(array $records)
  • bulkUpdate(array $conditions, array $data)
  • bulkDelete(array $conditions)

📄 Pagination & Existence

  • paginate(int $page, int $perPage, array $conditions = [])
  • exists(array $conditions)
  • count(array $conditions = [])

🗑️ Soft Deletes

  • restore(int $id)
  • findTrashed()
  • findTrashedById($id)
  • forceDelete($id)

🧠 Advanced Filtering

  • filter(QueryFilterContract $filter)
  • countByFilter(QueryFilterContract $filter)
  • deleteByFilter(QueryFilterContract $filter)
  • updateByFilter(QueryFilterContract $filter, array $data)
  • findByCallback(callable $callback)

Each method returns either a single EntityContract, an array of EntityContract, a boolean, an integer, or null, depending on the operation.

QueryFilterContract

Defines a contract for advanced query filtering using filter objects.

public function apply($query);

Let me know if you’d like to generate badges, link examples of concrete implementations, or include Laravel-specific helpers in the README.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-07