Minz is yet another PHP 8.2+ framework. It has no big ambitions and it is designed with my personal needs in mind.
What I like in Minz is:
- I know the code perfectly (I wrote it);
- it's powerful enough for my needs;
- it has a relative small size;
- it grows ONLY when I need it (the consequence is basic features might be missing);
- it's easy to perform integration tests;
- it provides a common interface for both Web and CLI requests;
- it has very few dependencies (only one at the moment, i.e. PHPMailer);
- I learnt a LOT by coding it and it was quite fun.
Download the repository into your project and include the autoload file. For
instance, if you've put Minz under a lib/
folder:
<?php
include(__DIR__ . '/lib/Minz/autoload.php');
I'm not intended to develop features that I have no uses (sorry!) That being said, forks are very welcome and I would be happy to link to yours if it brings value over my own codebase.
The reason for this choice is that I consider I have to control most of the code I rely on. Minz is a framework to ship next to the rest of your codebase, not as an external dependance. That's also the reason I don't plan to package it for Composer.
However, I'll be glad to accept patches for bugs and security flaws.
When I was a student, my professors introduced me to the Zend Framework (now Laminas project). At the time, it was very frustrating: too big, too abstracted and complicated for the young student I was. I've finally been able to use it, but I wasn't able to explain "how" things were working.
That's when I started the first "Minz" project (for "Minz Is Not Zend", very inspired). Its first repository is still visible on GitHub, but I urge you not to judge the code quality! I learnt how a framework could work and I've got reconciliated with Zend (well, sort of… I've never used it again). I used Minz, first of its name, for a bunch of projects; the most (and only) known today is FreshRSS. It's been hacked a lot since then, but the initial design is still there, in this RSS aggregator.
Almost 10 years later, I started a new PHP project (Webubbub) but I felt a bit rusty and I wanted to apply some ideas I had in mind for years concerning the architecture of Web applications. And that's how I ended up developing another PHP framework. I hope the years of experience are visible in this repository, but please remember I'm not a PHP expert (I mainly used Python and Ruby these last years).
It's still fun to develop a framework from scratch… and it takes some time too.
Today, I use Minz in several projects:
- Flus: a feed aggregator and social bookmarking tool;
- flus.fr: the website of the Web service I provide for Flus;
- taust: a monitoring system easy to setup (provided as a proof of concept);
- Webubbub: a simple WebSub hub.
Minz is licensed under AGPL 3.