Skip to content

Split contracts into separate interface packages #31567

@samdark

Description

@samdark

Description

The proposal it to split symfony/contracts into multiple contract repositories:

  • contracts-cache
  • contracts-event-dispatcher
  • contracts-http-client
  • contracts-service
  • contracts-translation

I have read https://github.com/symfony/contracts#why-isnt-this-package-split-into-several-packages and still do not think that it is correct for the case when I am not using Symfony as a whole but want to use one of its components.

For example, I want to use https://github.com/symfony/translation/ only. I am using PSR-16 for cache, PSR-14 event dispatcher and PSR-18 HTTP client. With the current package IDE would suggest wrong CacheInterface and would "spam" me with other interfaces that I am not using confusing project developers.

More formally speaking, it violates all the package cohesion principles: REP, CRP, and CCP.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions