Table of Contents
Symfony Framework Evaluation
Introduction
As typical of most frameworks, Symfony's primary goal is to speed creation of your web application; though they also have a focus on maintenance. They boast of a low learning curve, intuitive interface, and few prerequisites for installation.
Symfony is very flexible and easy to customize and comes bundled with a number of resources for testing, debugging, and documentation.
Use this space to introduce Symfony to the community.
Features
We're still working on the details of this section based on our testing. More details will be available 2/34/2010.
Data/ORM
Symfony primarily uses Doctrine as it's ORM client, with an alternative out-of-the-box option of Propel; however, other clients can also be used. Doctrine has a great tutorial/walk-through here: http://www.doctrine-project.org/documentation/manual/1_2/en
Development
Please reference the Development evaluation on the Sahana Framework Evaluation
Documentation
Please reference the Documentation evaluation on the Sahana Framework Evaluation
Administration
Please reference the Administration evaluation on the Sahana Framework Evaluation
Features
Please reference the Features evaluation on the Sahana Framework Evaluation
Optimization/Efficiency
Please reference the Optimization and Efficiency evaluation on the Sahana Framework Evaluation
Installation
Major Implementations
Have their been any major implementations of this framework? Was a significant program or project developed with it? Link or list the details here for some more credibility.
Evaluation and Testing
Have you tested the framework with Sahana? Please detail your testing for others to review and replicate. Be sure to include a label on your results so in the event of another persons testing more than one group can share.
NYC OEM & SPS Testing
NYC evaluated Symfony version 1.4, which runs on php 5.24. The LTS (Long Term Support) is available through Nov. 2012, beyond that there is a paradigm shift to php 5.3; meaning backwards compatibility will be broken in Symfony 2.0; though this is typical of other frameworks.
Goal of Testing
Test Doctrine ORM with a basic front end application
Source Code
On Test Bed
Guidelines
php 5.24, Symfony 1.4, doctrine 1.2, mysql 5+
Process
A default Symfony 1.4 install has been brought up, a doctrine ORM instantiated with the Sahana 0.6.2.2 schema running on a MySQL installation. We are easily able to manipulate values through the front end using objects, this is a shift from current pseudo objects being used in Sahana currently.
References
http://www.symfony-project.org/installation http://www.doctrine-project.org/blog/doctrine-1-2-0-stable-released
Results
NYC OEM & SPS' test results of a simple application on symfony 1.4 proved successful, further load testing should be performed, and a functional test to touch on all aspects of core Sahana functionality
Questions and Discussion
Do you or anyone else in the community have open questions on this framework? You can post your own questions for discussion or this space can be for others to ask you from.
Symfony Quirks
Symfony and Doctrine have some noteworthy quirks in the area of database design.
Primary Keys
If a primary key is not assigned to a table, one will automatically be created and named id
.
Name Column
If a column named name
is not included in a table, symfony will not display the appropriate label for that table's entries when the xxx_id
column of that table is used as a foreign key in another table. Instead, all selectable labels will read “No description for object of class “Evacuee”
(this example is from the evacuee_mj_language
module/table in Nils' demo installation of symfony. Since an evacuee is identified by a given_name
and a family_name
, there is no name column in the evacuee table and the join table is not able to fill its field correctly).
IDs are properly matched though, and there are simple workarounds that can be implemented.