[nycphp-talk] Frameworks - Which best fits my development style?
ajai at bitblit.net
Wed Aug 22 15:08:46 EDT 2007
On Wed, 22 Aug 2007, Ben Sgro \(ProjectSkyLine\) wrote:
> I know there has been a ton of discussion about frameworks.
> So far, I've looked into:
> 1) Cake
> 2) Zend
> 3) Joomla
> 4) Symfony
> 5) Drupal
> I've looked at tutorials, books and online how-tos'. Let me explain my development environment.
> I use smarty templates for all my HTML. My php is 5w/OOP. I have many libraries from everything
> from database access, sitemap creation, html (textboxes, drop downs), simple ajax, error logging,
> session handling, (all created by myself) and I use PEAR SOMETIMES as to not reinvent the wheel
> for a single project. When I design sites & applications, I have an index.php and pass "actions=WHATEVER"
> on the URL to change the action of the program. I dont use seperate files for different things EXCEPT for all the libs
> and auxiliary functions. I use SVN for revision control.
> I guess I don't see the compelling reason to switch to a framework. Will it really speed up my development
> time, even if I have all these libs (and still expanding) already created?
Im working on a major site and we're using symfony. I can tell you that
symfony gives you pretty much everything you need so your own classes will
not be of much use (and even if you see something it doesn't do, you will
most likely find a plugin already written that does).
It uses PHP5 so its a total OOP environment with an MVC architecture and
its own testing library. The command-line tool can generate code and stub
files (and can even be used for deployment).
One nice thing is that a lot of features can be switched on and off
through config files which reduces coding. (And most of the config files
are YAML files that get compiled and cached). I would describe symfony as
The documentation, (The Apress book is available online), wiki, forums,
mailing list, and snippets sites mean there is plenty of docs and sample
code to look at (this more than anything else made coding with symfony a
really nice experience).
Ive gained enough experience and confidence with symfony that Im also
converting an existing Joomla site to symfony (Joomla really was overkill
for that site anyway and symfony is really easy to work with). There is a
small learning curve but its not the hardest curve Ive ever had to climb
and the Apress book is a nice read.
> Applications I build are powered by PHP/MYSQL, HTML/CSS. There are forms to fillout, emailing, login,
> account creation, etc. Some are more complicated than others.
Forms validation is super easy - you setup validation "rules" in a YAML
file. Add some code to your actions class and you're done. (symfony
already comes with a bunch of built-in validators but you can also roll
your own - something we only needed to do in two places IIRC).
I should also mention that symfony has scaffolding and also generators for
building a complete admin tool for your database models (so implementing a
backend interface is easy).
> Maybe I could use one framework for making simple websites, and another for applications?
Sure, its possible to do that. For example, Joomla is great for an
e-commerce site (Ive implemented e-commerce in Mambo, Joomla and symfony),
since Joomla has a nicely pre-built backend for the customers to use. I
never liked the documentation available for Joomla (though Joomla just
published a nice book a month ago which might help).
> Also, I LOVE books, so any that have good paperback book or white paper/tutorials is a BIG plus.
Me too. You're in luck then - here's some references (incl. the official
Official published book: http://apress.com/book/bookDisplay.html?bID=10222
Book online: http://www.symfony-project.com/book/trunk
Mailing List / Group: http://groups.google.com/group/symfony-users
Askeet Tutorial: http://www.symfony-project.com/askeet
Ive been buying a LOT more technical books as ebooks this year thanks to
Apress, Pragmatic Programmer and Friends of Ed (wish O'Reilly offered PDFs
instead of Safari, oh well can't have everything).
More information about the talk