Just released v1.2.2 of Opulence to fix a bug when there is a space in your PHP binary's path. We also switched over to GitHub Actions from TravisCI and updated code to work in PHP 8.1.
We've fixed a bug that caused ambiguous database migration ordering when rolling back. If you're using 1.1.0 to 1.1.8, it's recommended that you update to 1.1.9, and then run "php apex migrations:fix" once. Then, you should be all set. Thanks @zpeteraba!
Just started converting some libraries to test out PHP 7.4. Incredible work by @nikita_ppv and others to make PHP feel more modern than ever. Love those types properties and short closures!
@peter279k It's inspired by .NET Web API, and is focused on making your controllers much more expressive and flexible via automatic content negotiation. Opulence is probably most useful as an MVC framework, and Aphiria is best at REST API development. Examples here: https://t.co/IFNiHnB1oW
Aphiria is still being worked on, and isn't ready for any sort of production use. You can check out the progress being made there via its GitHub organization: https://t.co/Q5lNkLVGyE. Its website is also still under construction, and I will post updates when it's up.
The new libraries I've been working on will fall under a new name - Aphiria. Aphiria is completely focused on helping you create REST APIs, and it uses some Opulence libraries to do this. Opulence will live in parallel with Aphiria - it is not going away. Cont'd
We have converted https://t.co/1htSIi5csy to a GitHub organization. All commits formerly attributed to that user are now attributed to https://t.co/V5d5K51Tgv. Let us know if any links appear to have broken during the switch.
Thanks to some more optimzations, I've improved performance on the new POC route matching library by roughly 2.5x. That's closed the gap significantly to Symfony's router. Still some work to be done. https://t.co/570sCbKhle
The tl;dr explanation of the algorithm is that it uses a tree structure to represent and match the URI path segments of your routes instead of using the traditional regex-based approach.
I'm looking for some suggestions on how to improve performance on a proof-of-concept route matching library. It's already 20% faster than FastRoute, but slower than Symfony's router. Submit a PR or raise an issue if you have ideas. https://t.co/570sCbKhle
I'm using the FastRoute style of grouping ~10 regexes at a time. Basically, if I have two routes that could match the same regex, but if the first fails a constraint (eg requiring a particular header value for versioned routes), my second regex won't ever match due to regex greed
@ircmaxell Just read your blog on radix tree-based routing. Did your implementation ever beat the speed of regex-based routing? I ran into an issue where regex-based routing is falling short due to "constraints" that can be called before a route is matched.
I just did the first end-to-end test of Opulence 2.0. It is shaping up to be the simplest, yet most feature-full REST API framework for PHP. Automatic content negotiation and (de)serialization of just about any POPO with absolutely no configuration. Good stuff.