All Projects → symfony → Contracts

symfony / Contracts

Licence: mit
A set of abstractions extracted out of the Symfony components

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to Contracts

Translation Contracts
A set of translation abstractions extracted out of the Symfony components
Stars: ✭ 1,949 (-36.45%)
Mutual labels:  symfony, contract, symfony-contract
Service Contracts
A set of service abstractions extracted out of the Symfony components
Stars: ✭ 1,931 (-37.04%)
Mutual labels:  symfony, contract, symfony-contract
Cache Contracts
A set of cache abstractions extracted out of the Symfony components
Stars: ✭ 1,800 (-41.31%)
Mutual labels:  symfony, contract, symfony-contract
Event Dispatcher Contracts
A set of event dispatcher abstractions extracted out of the Symfony components
Stars: ✭ 2,667 (-13.04%)
Mutual labels:  symfony, contract, symfony-contract
Sonata Doctrine Extensions
Doctrine2 behavioral extensions
Stars: ✭ 239 (-92.21%)
Mutual labels:  symfony
Fmelfinderbundle
📁 ElFinderBundle provides ElFinder integration with TinyMCE, CKEditor, Summernote editors
Stars: ✭ 231 (-92.47%)
Mutual labels:  symfony
Victoire
Fullstack Symfony CMS: The perfect mix between a framework and a CMS
Stars: ✭ 227 (-92.6%)
Mutual labels:  symfony
Auditor Bundle
Doctrine audits logs made easy.
Stars: ✭ 221 (-92.79%)
Mutual labels:  symfony
Symfony Cheat Sheets
Symfony Cheat Sheets
Stars: ✭ 242 (-92.11%)
Mutual labels:  symfony
Symfony Pack
A series of questions to prepare for the Symfony certification
Stars: ✭ 241 (-92.14%)
Mutual labels:  symfony
Htmlpurifierbundle
HTML Purifier is a standards-compliant HTML filter library written in PHP.
Stars: ✭ 234 (-92.37%)
Mutual labels:  symfony
Easyadminextensionbundle
Provides some additional features to EasyAdminBundle for Symfony
Stars: ✭ 232 (-92.44%)
Mutual labels:  symfony
Fosrestbundle
This Bundle provides various tools to rapidly develop RESTful API's with Symfony
Stars: ✭ 2,683 (-12.52%)
Mutual labels:  symfony
Alicedatafixtures
Nelmio Alice extension to persist the loaded fixtures.
Stars: ✭ 228 (-92.57%)
Mutual labels:  symfony
Laravel Zero
A PHP framework for console artisans
Stars: ✭ 2,821 (-8.02%)
Mutual labels:  symfony
Phpdish
🏠 PHPDish is a powerful forum system written in PHP. It is based on the Symfony PHP Framework.
Stars: ✭ 225 (-92.66%)
Mutual labels:  symfony
Options Resolver
The OptionsResolver component is array_replace() on steroids. It allows you to create an options system with required options, defaults, validation (type, value), normalization and more.
Stars: ✭ 2,723 (-11.22%)
Mutual labels:  symfony
Unite Cms
Really flexible headless CMS, built on top of Symfony and GraphQL.
Stars: ✭ 242 (-92.11%)
Mutual labels:  symfony
Enqueue Bundle
[READ-ONLY] Message queue bundle for Symfony. RabbitMQ, Amazon SQS, Redis, Service bus, Async events, RPC over MQ and a lot more
Stars: ✭ 233 (-92.4%)
Mutual labels:  symfony
Gearmanbundle
GearmanBundle for Symfony2
Stars: ✭ 233 (-92.4%)
Mutual labels:  symfony

Symfony Contracts

A set of abstractions extracted out of the Symfony components.

Can be used to build on semantics that the Symfony components proved useful - and that already have battle tested implementations.

Design Principles

  • contracts are split by domain, each into their own sub-namespaces;
  • contracts are small and consistent sets of PHP interfaces, traits, normative docblocks and reference test suites when applicable;
  • all contracts must have a proven implementation to enter this repository;
  • they must be backward compatible with existing Symfony components.

Packages that implement specific contracts should list them in the "provide" section of their "composer.json" file, using the symfony/*-implementation convention (e.g. "provide": { "symfony/cache-implementation": "1.0" }).

FAQ

How to use this package?

The abstractions in this package are useful to achieve loose coupling and interoperability. By using the provided interfaces as type hints, you are able to reuse any implementations that match their contracts. It could be a Symfony component, or another one provided by the PHP community at large.

Depending on their semantics, some interfaces can be combined with autowiring to seamlessly inject a service in your classes.

Others might be useful as labeling interfaces, to hint about a specific behavior that could be enabled when using autoconfiguration or manual service tagging (or any other means provided by your framework.)

How is this different from PHP-FIG's PSRs?

When applicable, the provided contracts are built on top of PHP-FIG's PSRs. But the group has different goals and different processes. Here, we're focusing on providing abstractions that are useful on their own while still compatible with implementations provided by Symfony. Although not the main target, we hope that the declared contracts will directly or indirectly contribute to the PHP-FIG.

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].