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.