Would you agree this is the definition of a PHP framework?

Not much.

Now you are talking about being more at an application level and not a framework level. Of course, there is no premade screens for accessing the stored logs. That is up to the client developer.

The language in Symfony is stored in different language files and transpiled to PHP a single time, so the code is ready at run time. No database calls. And yes, if you change the locale, the retrieved language is changed too.

As a software framework, the base behavior is supposed to be extensible through code (too). That is one of the main reasons to use a framework. You force your solution on your customer. Some might like that, others might not. It doesn’t make your framework any better.

I know what a transaction script is. I have no idea what you are explaining on the page you linked to. You do explain what a transaction pattern is here: http://www.tonymarston.net/php-mysql/infrastructure.html#controller.script

And if you read this gem about “anemic models”, if fits to what you are doing like a tee.

Field level security is a higher resolution for security. I am sure row level security can also be accomplished fairly easily.

So, in other words, because Symfony does have these things or at least can be very easily added, Symfony is way ahead of your framework. It might not be your customers asked for these things, but if they use Symfony, they can.

Scott