Proposal

COmanage should switch to a different PHP Framework, such as Laravel.

Candidate frameworks are:

NameVersionLicensePopularity*Notes
CakePHP3 or 4MIT3 
Laravel5.5MIT1 
Symfony3.x (3.3)MIT2 

Yii

2.0BSD4better AJAX support
Zend3BSD5 

*Popularity ranking of framework as search terms from trends.google.com
https://trends.google.com/trends/explore?date=2014-08-05%202017-09-05&q=laravel,cakephp,symfony,yii,zend
1 = highest, 5 = lowest (take with appropriate grain of salt)

Evaluation Criteria

  1. The selected framework must have a substantial history and a reasonable likelihood of being supported in the long-term.
  2. The selected framework must support plugins.
  3. The selected framework should not impose a significant burden on the developers.
    1. Possibly including IDE support.
  4. The selected framework must work with the existing data model largely unmodified.
  5. The selected framework must offer "out of the box" security management equivalent to current CakePHP capabilities.
  6. The selected framework must be compatible with the Apache 2 license.
  7. The selected framework must have an active support community, including good documentation, mailing lists/forums, etc.

Benefits

Cake

  1. Cake is more familiar; cost of change is always expensive.
  2. Security features such as built-in support vs. form tampering is strong

Laravel

  1. UI: webpack support, and other modern UI features - built-in

Drawbacks

Laravel

  1. There is no equivalent to SecurityComponent, though some specifics like CSRF protection are available. Capabilities like form tampering detection will require reimplementation.
  2. Laravel favors explicit declaration over convention, so eg all routes need to be explicitly declared. With Cake, only exceptions to the pattern need to be declared.

Conclusion

  • No labels