solophp/contracts
Composer 安装命令:
composer require solophp/contracts
包简介
Contracts and interfaces for Solo ecosystem
README 文档
README
A collection of interfaces and contracts for the SoloPHP ecosystem. This package provides standardized contracts that enable interoperability between different SoloPHP components and allow developers to create custom implementations.
Requirements
- PHP 8.1 or higher
Installation
Install the package via Composer:
composer require solophp/contracts
Available Contracts
Router
RouterInterface - Framework-agnostic interface for HTTP routing implementations.
use Solo\Contracts\Router\RouterInterface; class MyRouter implements RouterInterface { public function addRoute(string $method, string $path, $handler, array $options = []): object { // Your implementation return $this; // Enables fluent interface } public function match(string $method, string $uri): array|false { // Your implementation } }
Job Queue
JobInterface - Interface for executable job classes.
use Solo\Contracts\JobQueue\JobInterface; class SendEmailJob implements JobInterface { public function handle(): void { // Job execution logic } }
JobQueueInterface - Interface for job queue implementations with support for scheduling, retries, bulk insert, stats, reclaim and operational helpers.
use Solo\Contracts\JobQueue\JobInterface; use Solo\Contracts\JobQueue\JobQueueInterface; class DatabaseJobQueue implements JobQueueInterface { public function push(JobInterface $job, ?string $type = null, ?DateTimeImmutable $scheduledAt = null, ?DateTimeImmutable $expiresAt = null): int { // Add job to queue } // Also implement: // pushMany, addJob, getPendingJobs, getFailedJobs, getStats, // processJobs (returns int — number of jobs executed), // reclaimStuck, retry, markCompleted, markFailed. }
JobQueueListener - Observability hook for queue events. Implement to ship metrics (Datadog, Prometheus), open tracing spans, or enrich log context per job.
use Solo\Contracts\JobQueue\JobQueueListener; class MetricsListener implements JobQueueListener { public function onClaimed(int $jobId, string $jobClass): void { /* ... */ } public function onCompleted(int $jobId): void { /* ... */ } public function onFailed(int $jobId, \Throwable|string $error, bool $permanent): void { /* ... */ } public function onReclaimed(int $requeuedCount, int $permanentlyFailedCount): void { /* ... */ } }
Validator
ValidatorInterface - Interface for data validation implementations.
use Solo\Contracts\Validator\ValidatorInterface; class MyValidator implements ValidatorInterface { public function validate(array $data, array $rules): array { // Validation logic // Returns structured errors: ['field' => [['rule' => 'required', 'params' => [...]], ...]] return $errors; } }
Container
WritableContainerInterface - Extends PSR-11 ContainerInterface with write capability for service registration.
use Solo\Contracts\Container\WritableContainerInterface; class MyContainer implements WritableContainerInterface { public function set(string $id, callable $factory): void { // Register service factory } public function get(string $id): mixed { // Retrieve service } public function has(string $id): bool { // Check if service exists } }
Http
EmitterInterface - Interface for HTTP response emitters that send PSR-7 responses to the client.
use Solo\Contracts\Http\EmitterInterface; class SapiEmitter implements EmitterInterface { public function emit(ResponseInterface $response): void { // Emit headers and body to client } }
Usage
{
"require": {
"solophp/contracts": "^1.4"
}
}
Benefits
- Interoperability - Components built on these contracts work together seamlessly
- Flexibility - Swap implementations without changing dependent code
- Type Safety - Strong typing ensures contract compliance
- Framework Agnostic - Use in any PHP project
License
MIT
solophp/contracts 适用场景与选型建议
solophp/contracts 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 446 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 08 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 solophp/contracts 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 solophp/contracts 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 446
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 7
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-17