Disclaimer: The work here is a proof-of-concept, and isn't meant to be used in production (yet).
This is more sort of an academic post. While trying to add some more features to my framework's routing library, I decided to try out a proof-of-concept for a different route matching algorithm than the ones I'd seen before. Most are regex-based, but I wondered if I could build a hash table-backed tree-based approach. Over the past three months, I developed my proof-of-concept, and was pleasantly surprised at the results.
Speed
FastRoute was generally regarded as one of the fastest route matching libraries out there until t
A few deprecations in preparation for Opulence 2.0
Moved the tests from a top-level "tests" directory into each individual library's directory
Bumped the min PHP version to 7.1
You might find some of these features in other frameworks, but the nice thing about Opulence's implementations is that they are framework-agnostic. You can read the entire upgrade g
I've released the first beta (includes documentation) of my framework-agnostic route matching library. I know, I know, another PHP route-matching library. However, this has features not found in other libraries:
A fluent syntax to build your routes (no more memorizing config arrays)
Same order of magnitude in performance as FastRoute
Binding framework-agnostic middleware classes/parameters to your routes
The ability to match using header values (makes API versioning your routes easy)
Host matching
The ability to add custom rules to validate route variables (9 rules are currently bundled with the library)
After nearly 3 years of work, I'm proud to announce the first stable release of Opulence, my full-stack PHP 7 framework. I think of it as a mix of Laravel's expressive syntax, .NET Web Api's well-thought-out interfaces, and Symfony's modularity. I decided to write my own framework when I experienced frustration at how coupled some frameworks' components were, and with how much the frameworks bled into my domain. So, I set out to write a framework that gave you options, but by no means forced them on you.
I just released the latest beta of Opulence. If you aren't familiar with Opulence, it's a new full-stack PHP 7 framework that aims to compete with established frameworks like Laravel and Symfony. A huge advantage to using Opulence is that it's hyper-focused on loose coupling between its libraries so that your domain logic isn't mixed with framework logic. Loose coupling also makes it easier to use individual libraries outside of the framework without having to also download half of the framework due to dependencies. In fact, this latest beta was all about reducing some remaining coupling. The Bootstrapper library (similar to Laravel's service providers) has been rolled into the IoC libr
I'd like to introduce to the world my PHP 7 framework called Opulence. It's 2.5 years in the making, and aims to compete with the established PHP frameworks. It's a full-stack, modular framework that includes:
A router
Middleware support
A data mapper/repository-based ORM
A powerful new templating language (called Fortune)
An IoC container
Console support (called Apex)
A validation library
Automatic server environment detection
Built-in integration test suite
Fluent SQL query builders
Bootstrappers for plug-and-play components (similar to Laravel's "service providers")
20 of its 23 libraries have 0 dependencies, making it simple to use