Jinya CMS Version 23.1.0 released 🥳

Two months ago Jinya CMS Version 23.0.0 was released. A new improved version was released, lets see whats new.

TG-93 Clean PHPStorm and phpstan issues

At first we, finally, removed all the issues pointed out by phpstan and PHPStorm. That increased the code quality and made further work easier and more joyful.

TG-119 Theming documentation

The possibilities with themes changed quite a lot during the life time of Jinya CMS. It is now at a point where we wanted to provide a stable API. And a stable API needs a stable documentation. The current docs can be found at cms.jinya.dev. Currently only the themes are documented but it is planned to extend the docs for all APIs available.

TG-127 Generate CRUD routes based on models

This change was one hell of a ride. The old way of routing was reflection based. Reflection imposes some performance issues. Since all routes need to be available at startup of the app, Jinya CMS had to check all files for routes for every request. As you might guess, that takes time. Apart from the performance penalty, most route methods did basic CRUD methods. These methods can easily be automated since all needed information is inside the models. Using that knownledge we created a new way of handling these routes. Instead of provided CRUD endpoints for all models, we created one endpoint for all models. This one endpoint picks the model set in the URL, automatically resolves the class and handles the CRUD routines based on the HTTP verb.

Sadly that doesn't work for all routes. Some still need special handling we hard wired them back, which removes the performance penalty introduced with the reflection based route resolution. Overall it works more stable now, and operates faster. In the future the routing might be optimized even more, but currently there are no plans to do so.

TG-128 Unify RoleMiddleware and AuthenticationMiddleware

Another performance penalty that sat in Jinya CMS was the split between authentication and authorization. There were two checks if the user is authorized in two different middlewares. The issue with that is, that every middleware makes the application a little bit slower. Another important reason the middlewares were unified was to clarify that only one middleware is needed for rights validation. That way it should be easier for future developers to extend this part of Jinya CMS.

TG-129 Fix or remove RouteCommand

Together with the new route resolution, came issues with the RouteCommand. We decided to remove it and implement a prober API documentation in the future.

TG-131 Update Jinya Testing Theme with empty views

The Jinya Testing Theme was updated to be a more comprehensive demo for theme developers. It got several descriptive comments and all need views added.

TG-132 Update blog webhook to fire in DB methods

One of the routes with special handling were the blog routes. It is possible to call a HTTP request every time a blog post gets published. We moved that feature from the routing in the database access layer.

PHP 8.1 requirement

This release requires PHP 8.1 to work, so make sure to update your webserver before you update Jinya CMS.

Final thought

Version 23.1.0 was no change for the designer or the frontends. This is rather good news, since we changed the whole routing architecture. At the moment an important feature missing are Unit Tests, and we plan to implement with the new release. Also proper documentation is key for other developers to hop on and use Jinya CMS. With the theme docs we made a first step, but there needs to be more documentation around Jinya CMS. The whole API is undocumented, which makes it really hard to use it in custom apps. If you have questions, want to contribute or just like to chat, drop a mail to developers@jinya.de.