• Stars
    star
    127
  • Rank 281,965 (Top 6 %)
  • Language
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of mature interfaces to build components on

PHP Contracts

A curated list of mature interfaces to build components on.

Join us in the Gitter chat room: Join the chat at https://gitter.im/rkrx/php-contracts

Good interfaces behave like a contract, a promise, a documentation. They don't have an opinion about the internals of a concrete implementation. So you can use interfaces while building huge applications to decouple different parts and hopefully gain a much better level of reusability, interchangeability and maintainability.

Rules:

  1. A project must only consist of interfaces that have the character of a contract.
  2. The project must ship a good documentation.
  3. The project could include one or more implementations.
  4. The project's documentation must use english language.
  5. The interface(s) must comply with PSR-1.
  6. The interface(s) should comply with PSR-2.
  7. There should exist implementations that show the practical benefit of the offered interface(s).
  8. The project should be available through Packagist.

Stable

(Click on an item to get a list of available implementations)

Project Packagist Implementations
psr/log Latest Stable Compatible Packages
psr/cache Latest Stable Compatible Packages
psr/container Latest Stable Compatible Packages
psr/http-message Latest Stable Compatible Packages
psr/http-server-handler Latest Stable Compatible Packages
psr/link Latest Stable Compatible Packages
psr/simple-cache Latest Stable Compatible Packages
container-interop/container-interop Latest Stable Compatible Packages
flamecore/event-observer Latest Stable Compatible Packages

Drafts

Project Packagist Status
adammbalogh/key-value-store Latest Stable Draft
rkr/php-ioc-contract Latest Stable Draft

Noteworthy projects

  • illuminate/contracts โ€“ Subtree split of the Illuminate Contracts component (see laravel/framework)
  • HttpKernelInterface โ€“ HttpKernelInterface handles a Request to convert it to a Response.
  • FlySystem โ€“ Flysystem is a filesystem abstraction which allows you to easily swap out a local filesystem for a remote one. Reducing technical debt and chance of vendor lock-in.

Wishlist

  • 3rd Party APIs (Amazon, Google etc)
  • Authentication
  • Communication (Email, Sms, Notifications etc.)
  • (More) Date-, Time-, Interval-, Calendar-Manipulation
  • (More) Dependency-Injection-Container interfaces with more methods (make, call etc.)
  • E-Commerce (Payment, common order structures, common address structures etc.)
  • File-System-Abstraction
  • Filetype-Abstraction
  • Filtering
  • HTTP-Routing (Lookup and Link-Generation)
  • Image-Manipulation
  • Key-Value-Stores
  • ORM / Data-Handling / Data-Structures
  • Queues (like RabbitMQ / Gearman)
  • Search-Server-Interfaces (querying, Responses, Facettes etc)
  • Template-Engines
  • URL-Manipulation
  • Validation

More Repositories

1

php-mysql-query-builder

Simple mysql query builder to build select, insert, update and delete queries with conditional parts.
PHP
21
star
2

php-wildcards

A simple wildcard matcher
PHP
13
star
3

php-regexp-builder

Human-friendly regular expression authoring
PHP
5
star
4

php-ioc-contract

A contract for ioc-containers
PHP
4
star
5

php-streams

Basic stream interfaces in PHP
PHP
4
star
6

php-view

More secure and easy to use templating system for php5.4+
PHP
3
star
7

php-data-diff

A handy tool for comparing structured data quickly in a key-value manner
PHP
3
star
8

array-object-converter

A module to copy data from an array to an object, vice versa. PHP 5.4+
PHP
3
star
9

php-key-value-stores

Interfaces for common key-value-store-operations
PHP
2
star
10

php-recursive-array-access

Access n-dimensional arrays through an easy interface
PHP
2
star
11

docker-solr

Docker Buildfile for Solr 3.6.2
Dockerfile
1
star
12

cron-expressions

Cron expression parser and tooling for typescript and deno
TypeScript
1
star
13

php-service-dispatcher

A simple service dispatcher for shell scripts
PHP
1
star
14

db-migrations

Not yet powerful library to execute db-migration files
PHP
1
star
15

php-table-gateway

A table gateway component on top of rkr/php-mysql-query-builder
PHP
1
star
16

php-router-contract

A common interface for routing-components
1
star
17

php-strings

Function library for multibyte string manipulation
PHP
1
star
18

akeneo-api-rest-connector

A simple connector to get data from the akeneo api
PHP
1
star
19

php-simple-router

A simple, unopinionated routing approach
PHP
1
star
20

php-multipart-mime

Multipart Mime with PHP
PHP
1
star