Daniel Gafitescu Freelance web developer focused on open source solutions

1May/120

Quick comparison between Symfony 1.4 and Zend Framework 1.1

Quick comparison between Symfony 1.4 and Zend Framework based on my personal experience.


MVC structure
Both framework are using the MVC pattern but they have a different structure of the code organization

Symfony : Project > Applications (Frontend/Backend) > Modules > Actions (controllers) > Views

Zend Framework : Application > Modules > Controllers > Views

Command Line
Symfony is using heavily  CLI to generate code and default structure on the other site ZF is using something similar ,  Zend Tool but it's not that powerful as the SF one.

Code organization
Zend Framework is a loosely-coupled architecture allows developers to use components individually like ( Zend_Search_Lucene ) on the other side Symfony is a full stack framework  that standardize the development of a web app.

Database (Model)
Symfony is using Doctrine/Propel ORM  as the Model and ZF is using Data Mapper classes to interact with the database, but as well can be extended to use Doctrine as well.

Testing enviroments

ZF as well as SF is using environments , most common configuration are local , dev , test and production. You can do a lot of changes from this perspective since you can log and debug easily and use different approaches to test the live site and see debug information only from a certain IP address.

The configuration files :
Symfony is using YML standard for configuration files and uses a hierarchy and same configuration can be found in many files, this means that's override.  There is also an inheritance of the environments settings that you can again override whenever you like. Zend framework on the other side uses by default .ini files but you can change that to use xml or php files.

Unit testing

From the unit testing perpective Zend framework is using PHPUnit the  de facto standard on unit testing on Php oppose to Symfony who is version 1.4 is using Lime. You can still use PHPUnit with Symfony 1.4 but you need to install a couple of plug-ins.

Scaffolding

Symfony is using scaffolding & admin generator to do CRUD operation on a database table structure , Zend Framework doesn't have that build in but can be extend to do something similar.

Extending the framework
Symfony can be easily extended using plugin and libraries , even use Zend framework stand alone components , on Zend Framework you can extend current component or you can as well use external libraries.

Community

Both framework have huge communities around them starting with forums, email lists and irc chats channels. Also they have dedicated conferences : For Zend Framework you have ZendCon and Symfony has Live Symfony .

Company behind it

The company the Zend Frameword is Zend who is a PHP company all the way from IDE, code protection & obfuscation with Zend Guard,  Zend Server  , certifications, training  and more recently the cloud computing solutions. All this play nicely with each other but in order to have them you need to pay.

On the other end Symfony is a Sensiolabs release started by Fabien Potencier. Sensiolabs offers trainings, organize conferences and offer support on Symfony projects.

On 28th July 2011 Symfony2 was officially  launch which take the framework to a next level embracing Php 5.3 namespaces , decoupling of modules which some of them are going to power Drupal 8, choose PhpUnit as a standardized testing framework, new templeting system (Twig) , MongoDB support and Doctrine2 for working with databases.

On the other hand Zend Framework 2 is still in beta3, so from my point of view are a step behind Symfony.

Airbus vs Boeing

Don't know why for me it's the first thing I got on my mind when I compare these 2 frameworks. The French have launched A380 in late 2007 and  USA rival Boeing 747-8 was launched in mid 2011 and its the French who win here.

Conclusion

This comparison is a subjective one each framework it's great if the right coder is using it and since everyone is different will be different conclusions.As for me I am going with Symfony ...even with Symfony 1.4

 

 

5Mar/120

MVC Frameworks for Building PHP Web Applications from Lynda.com

A great objective overview of the 4 most used and popular frameworks Zend Framework, Symfony, Codeigniter and CakePhp.

Drew Falkman goes and show each framework features, what patterns it uses and implements a single join email list application which uses all MVC concepts.

For a php developer it's a must watch tutorial so when you start a new project you can see which framework to use.

Go check it out!