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

I do not have a single Controller in my application that has to deal with all possible actions on all possible Models and Views.

I do not have a single View which has to deal with all different types of output - HTML, PDF, or CSV.

I do not have a single Model which has to deal with all the tables in the database.

What I DO have is an architecture where each user transaction, and I have over 2,500, uses a Model (sometimes more than one) a View and a Controller, where each is chosen from a list of possibilities at run time.

  • I have 40 Controllers, one for each Transaction Pattern
  • I have 3 Views, one for HTML output, one for PDF output, and another for CSV output.
  • I have 300+ Models, one for each table in the database.
  • I have 4 Data Access Objects, one for MySQL, one for PostgreSQL one for Oracle, and another for SQL Server.

Each of these components is responsible for (or concerned with) a separate piece of logic in the application so as far as I am concerned this is an acceptable interpretation and implementation of SRP.