Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC]: [Laminas Ecosystem] #199

Open
arhimede opened this issue Aug 19, 2024 · 10 comments
Open

[RFC]: [Laminas Ecosystem] #199

arhimede opened this issue Aug 19, 2024 · 10 comments
Assignees
Labels

Comments

@arhimede
Copy link
Member

RFC

Goal

Let's create 2 new sections on getlaminas.org website, to list "approved" 3rd party components which can be used with Laminas projects.

  1. Middlewares : example: https://github.com/akrabat/ip-address-middleware
  2. Wrappers around 3rd party libraries: example: https://github.com/netglue/laminas-messenger

Background

When we are building production platforms based on Laminas, we may need to solve trivial tasks , or to integrate some good quality 3rd party libraries, in order to achieve a certain business goal.

The current page where are listed Mezzio projects is too hidden and incomplete:
https://docs.mezzio.dev/mezzio/v3/reference/mezzio-projects/

Considerations

Do not reinvent the wheel.
Have in a central place as many as possible 3rd party libraries and components which are known to work with laminas, or are usefull middlewares.
Attract contributors to those 3rd partie libraries.

Proposal(s)

Create 2 new pages in getlaminas.org website, where will be listed:

  1. Middlewares: small libraries which solve one problem , and can be integrated directly in a laminas project
  2. Wrappers, sorted by functionalities : for example, a queue management library, build by 3rd party ( symfony for instance ) , ready to be integrated in a laminas project.

Appendix

We may have a form to allow developers to submit any middleware or wrapper in order to be included in the website.
Or we can promote the content of this page, in an extend form, by having a Middleware and Wrappers section:
https://docs.mezzio.dev/mezzio/v3/reference/mezzio-projects/

@gsteel
Copy link
Member

gsteel commented Aug 19, 2024

Or, why not host a fat JSON file on the website along the lines of

[
    "name": "Some Middleware"
    "tags": ["Middleware", "Something Else"],
    "repo": "https://github.com/some-url",
    "docs": "https://example.com/optional-docs-url",
]

So that authors can publish packages by PR and the website can programtically filter the results by tag/category/whatever.

We'd just need to ensure that there are some unit/integration tests for the relevant endpoint to ensure the JSON is valid etc

@arhimede
Copy link
Member Author

I would follow @gsteel' suggestion here because there are more than middlewares and wrappers (bad term that says nothing).

Let's find another term instead of wrappers.
As will be marketed a lot once we find a good wording.

Example for Layout

https://getgrav.org/downloads/plugins

Indeed , this is what i imagine. A page with lot of (extensions, plugins ? )

@gsteel
Copy link
Member

gsteel commented Aug 20, 2024

It's all of these. It might be worth considering a finite list so that we can tag items appropriately.

For example, I have a lib that integrates Postmark (Service) with the Laminas ecosystem - it provides Services (i.e. Mail Transport, Api Client etc) and validators for pre-dispatch validation. This kind of lib might indicate it hooks into the validator and mail components along with providing service items??

@arhimede
Copy link
Member Author

Probably the acceptance criteria for such a library in the Laminas Ecosytem page would be something like:

  • if we call it in composer
  • with some setup like config and pipelines

will it work in a Laminas Mezzio project ?

@gsteel
Copy link
Member

gsteel commented Aug 20, 2024

Whatever is accepted must be installable via composer.

If you've created a lib for Laminas/Mezzio integration, you should be shipping a ConfigProvider and/or a Module - at least one of these must be present to permit the laminas composer plugin to do its thing.

I think that limiting submissions to Mezzio is a mistake, i.e. there should be a category for MVC regardless of how much we use it ourselves.

@froschdesign
Copy link
Member

I suggest that this topic be included as a new item for the next meeting.

@internalsystemerror
Copy link
Member

I understand the desire, but not the result. e.g. Mezzio supports PSR-15, so is this going to list every PSR-15 compatible library, since that's what's supported?

Is further than that and these are libraries that are actually tested against our packages? Or is this just a "laminas recommends these libraries because we've used them and they seem pretty good"?

@internalsystemerror
Copy link
Member

My recommendation, which I hope aligns with the desire here, would be to make the scope "third party packages which provide explicit support for Laminas packages - with testing the responsibility of the third party".

@arhimede
Copy link
Member Author

arhimede commented Sep 9, 2024

My recommendation, which I hope aligns with the desire here, would be to make the scope "third party packages which provide explicit support for Laminas packages - with testing the responsibility of the third party".

This sound good, as we do not want to test each package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants