Personally, I advocate maximum reuse of existing (and proven) solutions. That's why I've choose symfony (with a lowercase s) 6 years about to develop our current LMS, and that allows our very small team (2 people) to have a working solution that, while not being as complete as chamilo, has been sufficient for 4 years.
I will also add that I understand the goal of Chamilo is to support open-source e-learning, so our role is not the reinvent everything that is not directly tied to e-learning but to build efficient e-learning tools. As our resources are limited, I think we should focus on things that are specific and important to elearning (SCORM, courses management, portfolio, etc.), the same way Ubuntu focuses on user experience and based its effort on the proven Debian distribution. So I'd say that build on a proven framework seems to me a good solution. That being said, my preference would go to Symfony2 because : * I've work with symfony1 ;) , and even if there's no compatibility between to two, I recognize myself in the way the framework evolve (Symfony2 is essentially a PHP port of the Python framework django that is my preferred environment) * Beside the code quality, the main reason I've chosen Symfony was the documentation. I don't know if it change but at the time ZF doc was very poor. About speed (and quality in general): Symfony2 has became one of the two major frameworks and some of their developers are (or have been) PHP core developers. So most of time, I don't how we can write better code than them. They have also done an interesting work on caching [1] and on distributing their bundles (which can be interesting for our package manager) About the codebase size: I don't really see what the problem is. Even if Symfony2 is a quite big project, it's just dozen of Mb, nothing really important those days. On the other side, Symfony2 is not really sized to run on free web hosting which may be a problem (but not for me) Also Symfony assumes that you have access to CLI on the server (or at least, it really help) Another aspect is that I think we should not included the framework in the project but create a project that relies on the framework, to facilitate code updates (at least with minor versions) For example, the eFront LMS is based on the ZF, but the last time I've check I notice it included a quite old release. About the freedom: the main problem is if one day the Symfony2 project goes in a direction that is not the Chamilo's one. Or just if the project evolves faster than we can follow. This is one of the problem we face with our current LMS, that is blocked with symfony 1.0 and Propel1.2. But I would say that the structure of the framework (a bunch of components that adheres to the "loose coupling, tight cohesion" [2], another thing "stolen" from django) allows us, if one component goes in a direction that doesn't fit our needs, to replace it (even if it doesn't completely remove the problem of the cost of this replacement) About the licence, IANAL but I would say that include a BSD licensed project within a GPL3 one is not a problem (opposite to the contrary.) Like Yannick, I think one of the major questions would be how to handle the migration. It has to be as smooth as possible. I know that Sensio, the company behind Symfony2 has already done such migrations for some customers (DailyMotion has migrated from a custom PHP framework to parts of Symfony2, the front controller and the routing being the first steps). I've also read a presentation[3] about how to migrate from symfony 1 to Symfony2 : it's quite general but it give some clues about how to do this. > Furthermore, we increase the likeliness of having > developers with Zend/Symfony experience getting into our project, which > couldn't be bad. Also agree. Regards, Goulwen [1]: http://www.slideshare.net/fabpot/caching-on-the-edge-with-symfony2 [2]: http://c2.com/cgi/wiki?CouplingAndCohesion [3]: http://www.slideshare.net/marchugon/quid-de-vos-applications-symfony-1/ _______________________________________________ Dev mailing list Dev@lists.chamilo.org http://lists.chamilo.org/listinfo/dev