Anonymous Login
2019-08-17 08:35 PDT

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000283v4.0 Release (Planning)Core Infrastructurepublic2016-12-29 10:11
Reportercaseydk 
Assigned Tocaseydk 
PriorityhighSeverityminorReproducibilityalways
StatusassignedResolutionopen 
Product Version 
Target Version4.0Fixed in Version 
Summary0000283: Model & Controller Cleanup
DescriptionBased on feedback of a number of useful tools and smart people, I've collected some notes on how best to clean up the core modules to be cleaner, smaller, more OO-like, and more reusable in general. This will also serve to provide clean implementation for Add On Developers

I've started with the Companies module as an example.
Additional InformationThe tips include:

* Fat models, skinny controllers - the do_(module)_aed.php files serve as the Controllers for the system directing input into the Models and handling the results. At present, there is a *huge* amount of business logic in these Controllers which requires the Model to be wrapped with the same logic each and every time in order to be used safely. Moving this logic into the Models makes them more usable by other modules and code.

* Centralize Access Control to the Models instead of keeping it spread around the View, Controllers, and everywhere else willy-nilly. This will improve security in general and make the Models more usable by other modules and code.

* Use the php5 style of contructors - __construct - as opposed to the php4 style classname format.

* Use the php5 style of calling parents.
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0002156

caseydk (administrator)

The final two points were implemented in v2.0-v2.4

~0003484

caseydk (administrator)

Last edited: 2014-06-21 20:29

View 2 revisions

The second point (access control) was wired into v3.2. These controllers are the last bit of cleanup for issue one:

files
projects
system
tasks
users

+Notes

-Issue History
Date Modified Username Field Change
2009-10-04 15:02 caseydk New Issue
2009-10-04 15:02 caseydk Status new => assigned
2009-10-04 15:02 caseydk Assigned To => caseydk
2009-12-08 11:48 caseydk Project Pending Requests => v1.3 Release (Closed)
2010-02-18 04:39 caseydk Project v1.3 Release (Closed) => v2.0 Release (Closed)
2010-05-04 20:38 caseydk Priority immediate => high
2010-05-14 07:58 caseydk Severity major => minor
2010-05-30 22:52 caseydk Project v2.0 Release (Closed) => Pending Requests
2010-06-11 06:01 caseydk Project Pending Requests => v2.1 Release (Closed)
2010-09-04 22:26 caseydk Project v2.1 Release (Closed) => v2.4 Release (Closed)
2011-06-07 22:16 caseydk Project v2.4 Release (Closed) => Pending Requests
2011-08-09 12:54 caseydk Project Pending Requests => v3.0 Release
2011-08-19 16:42 caseydk Note Added: 0002156
2011-08-19 16:42 caseydk Additional Information Updated
2011-09-27 23:25 caseydk Project v3.0 Release => Pending Requests
2014-01-01 17:02 caseydk Project Pending Requests => v4.0 Release (Planning)
2014-01-21 17:57 caseydk Target Version => 4.0
2014-03-30 22:14 caseydk Category General => Core Infrastructure
2014-06-14 18:43 caseydk Note Added: 0003484
2014-06-21 20:29 caseydk Note Edited: 0003484 View Revisions
2016-12-26 10:25 caseydk Project v4.0 Release (Planning) => Pending Requests
2016-12-29 10:11 caseydk Project Pending Requests => v4.0 Release (Planning)
+Issue History