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

No, it breaks SRP because it has more than one reason to change

  • You’re generating a PDF. If this PDF generation logic needs to change, you need to change the class. For example
var $pdf_destination;               // I=Inline (browser), D=Download (browser), F=Filename (on server), S=String

If you need to add another option to this, the class needs to change

  • You’re generating a CSV:
 var $no_csv_header = false; 

If you want to change the way the CSV is generated you need to change this class

var $no_display_count = false;   

Whatever this does, if you want to change the way the display count is used you need to change this class

var $pageno;  

If your pagination logic changes, you need to change this class

  var $picker_subdir;                 // subdirectory for the File Picker
    var $picker_filetypes = array();    // array of file types

If you want to use a different file picker or change the way the file picker works you need to amend this class. For instance adding a file-size limit as well as a file type limit here.

var $report_structure;              // report structure

If you add a new report structure, this class needs to change

    var $wf_case_id;                    // workflow case id
    var $wf_context;                    // workitem context
    var $wf_workitem_id;                // workflow workitem id
    var $wf_user_id;                    // update workitem with this value, not $_SESSION['logon_user_id']

If the “workflow” structure changes, you need to change this class

    // the following are used to construct SQL queries
    var $default_orderby = null;        // default for table, may be overridden by $sql_orderby
    var $default_orderby_task = null;   // default for task, may be overridden by $sql_orderby
    var $sql_from;
    var $sql_groupby;
    var $sql_having;
    var $sql_no_foreign_db = false;     // if TRUE _sqlProcessJoin() method will skip tables in other databases
    var $sql_orderby;                   // sort field
    var $prev_sql_orderby;              // previous sort field
    var $sql_orderby_seq;               // 'asc' or 'desc'
    var $sql_orderby_table;             // tablename qualifier for optional sort criteria
    var $sql_search;                    // optional search criteria from a search screen (modifiable)
    var $sql_search_orig;               // original search criteria (unmodified)
    var $sql_search_table;              // tablename qualifier for optional search criteria
    var $sql_select;                    // fields to be selected
    var $sql_selection;                 // selection passed down from previous task
    var $sql_union;                     // optional UNION clause
    var $sql_where;                     // additional selection criteria

If you want to support a different query grammar you need to change this class

var $dirname_dict;                  // directory name where '*.dict.inc' script is located (optional)

If you want to support a different dictionary format, this class has to change

    var $inner_table;                   // used in an outer-link-inner relationship

To add different relationship types, this class has to change

There are dozens more and that’s just looking at the variables.