|View Issue Details [ Jump to Notes ]||[ Issue History ] [ Print ]|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000283||v4.0 Release (Planning)||Core Infrastructure||public||2009-10-04 15:02||2016-12-29 10:11|
|Target Version||4.0||Fixed in Version|
|Summary||0000283: Model & Controller Cleanup|
|Description||Based 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 Information||The 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.
|Tags||No tags attached.|
|The final two points were implemented in v2.0-v2.4|
Last edited: 2014-06-21 20:29
The second point (access control) was wired into v3.2. These controllers are the last bit of cleanup for issue one:
|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)|