voltan
August 1, 2025, 10:39am
1
Hello every one
I need some repo links or example of codes, for a Mezzio modules, we have a plan to move all modules from MVC to Mezzio, I need review some examples and other developer works
If you develop any module or know about any module, please share link here
Thanks
1 Like
A list will be added to the website shortly:
staging
← Jurj-Bogdan:laminas-ecosystem-issue199
opened 12:01PM - 01 Nov 24 UTC
| Q | A
|-------------- | ------
| New Feature | yes
| RFC … | yes
### Description
This PR is an initial implementation for the [Laminas ecosystem RFC](https://github.com/laminas/getlaminas.org/issues/199). There are still features I think should be implemented (i'll list a few at the end), but hopefully there's enough for a preview to help continue the conversation started in the RFC.
### Current functionality
The `laminas ecosystem:create-db` and `laminas ecosystem:seed-db` commands are used to generate and update the list found on '/ecosystem' by using the user-provided data from `ecosystem-packages.json`.
As the consensus from the RFC is that packages must be installable via composer, the Packagist url is mandatory and used to make a single request per package, from which the displayed data is extracted.
If provided, the 'homepage' and 'githubUrl' data will be used to overwrite the data coming from Packagist, and the 'categories' are used as extra filtering options in the package listing.
The `create-db` command currently works similar to the blog version, regenerating the whole database file after each build, although i would change this to make it more future proof. I've thought of the `seed-db` command as a cron used to select packages not updated in X hours and update some of the relevant data - would something real-time (or closer to) be desired instead?
As for the listing page ('/ecosystem') I've left a low page size to make it easier to test the pagination with the few default packages. For now there's searching by package name and filtering by "tags" (keywords taken from packagist) and "categories" defined by the user in the json file.
#### what next?
- i'm aware of the failing psalm check, but seeing as this PR is subject to change, I'll make sure to clean that up once i have a better understanding of what is required from this feature
- maybe adding a github action to validate the `ecosystem-packages.json` file, to make it easier for the reviewer ?
- if the current approach is kept, i think changing the database creation command to only add the newest entries if the db already exists would be a good change
- design changes
- as both the [blog search](https://getlaminas.org/blog/search?q=laminas) and [maintenance status](https://getlaminas.org/maintenance-status) features provide json responses, this could be added to the ecosystem package list as well if desired
- expanding the instructions for adding a new package once the desired rules and approach is agreed on
1 Like
Mezzio do not use the Module
class it uses config providers:
Examples can be found in the packages of laminas, for example laminas-filter:
final class ConfigProvider
{
/**
* Return configuration for this component.
*
* @return array{dependencies: ServiceManagerConfiguration}
*/
public function __invoke(): array
{
return [
'dependencies' => $this->getDependencyConfig(),
];
}
/**
* Return dependency mappings for this component.
*
* @return ServiceManagerConfiguration
*/
public function getDependencyConfig(): array
This file has been truncated. show original
Some more examples:
a Navigation component for Mezzio
Advanced dependency injection for laminas framework
ZF3 Module to use the League of Extraordinary Packages' Tactician library
Another important aspect is that there is no event manager as in laminas-mvc, as this is not necessary for processing an application due to the middleware concept .
Sure, you can use event manager but Mezzio does not need this.
GitHub - Ecodev/my-ichtus: myIchtus API and FE app is a real-life application based on Mezzio. It is mostly a GraphQL API, so you won’t find much of the typical view rendering things, but it can still give you ideas on what to do, or not to do (!).
The app also uses a custom a custom library, Felix , that provides a few useful thing for our use-cases . That lib is not really meant to be used by other people, but it can also give you some ideas…
voltan
August 23, 2025, 6:53am
6
Thank you very much for the links