We’re starting to bring the various repositories for the Apigility on Expressive initiative into the zendframework GitHub organization, and realized we have a naming problem.
The first has landed: zend-problem-details. We have two more that are about ready:
- Hypertext Application Language (HAL) support, currently package “weierophinney/hal”
- Caching middleware, currently package “zend-expressive-cache”
The problems we’re running into are:
- The code is engineered to work with Expressive, but
- is not specific to Expressive; it can be used in any PSR-7/PSR-15 middleware application.
When I chose “zend-problem-details” as a package name, it seemed a no-brainer; it’s an implementation of the Problem Details for HTTP APIs specification (IETF RFC 7807). However, with the other two repositories, we have some questions:
- We already have a “zfcampus/zf-hal” package, and don’t want to confuse the two.
- The proposed HAL package can provide just OOP functionality around HAL, but it’s intended purpose is to provide PSR-7 response generation, for use within PSR-7/PSR-15 middleware.
- The proposed zend-expressive-cache package provides PSR-7/PSR-15 middleware that can cache requests using PSR-16 caching adapters.
We’ve tossed around a few ideas, and would like some feedback:
- No special prefix; name the packages semantically. Downside: it’s unclear which packages can be used with Expressive and/or general PSR-7/PSR-15 middleware.
zend-expressive-as a package prefix. Potential downside: developers using other middleware stacks do not adopt them, thinking they are specific to Expressive.
zend-middleware-as a package prefix. Potential downside: Expressive users have uncertainty about their ability to use the packages within Expressive. Additionally, for packages that do not provide middleware (e.g., the HAL package), the prefix is a misnomer.
- Use a different organization like we did with Apigility (which is under the zfcampus org). Discoverability is the downside at that point.
Which options appeal to you? Do you have other suggestions?