One man"s search for an MVC framework

One man"s search for an MVC framework

am 07.08.2007 19:41:28 von walterbyrd

I am considering PHP and Python frameworks. This is what I'd like:

1) Good documentation
2) Active community
3) Easy to set up a CRUD grid
4) Built in ability to handle complex data relations
5) Strong data validation
6) Built in multi-level user authentication
7) Ajax enabled inline editing
8) Easy to deploy and configure
9) Low system requirements
10) Misc.

I have looked at the following frameworks, this is my analysis:

Codeignitor:
Great documentation, good community, very low system requirements,
easy to deploy. But fails on CRUD and Ajax.

CakePHP:
Biggest and most active community of all, low system requirements,
easy to deploy. Several popular PHP projects integrate with Cake in
one way or another: Drupal, Joomla, Mambo, PhpBB. The complaint I read
about, constantly, is the documentation.

Qcodo:
Decent community, system requirements are not too bad (PHP5), easy
enough to deploy. The CRUD and Ajax features are the best I've ever
seen. When it comes to developing a sortable, searchable, inline
editable grid; Qcodo seems to blow away all the others. I am somewhat
concerned about doing anything outside of what is shown in the
tutorials. Also, somewhat concerned about maintainability. For
example, I think Qcodo generates 8 files for every table you create -
seems like a lot.


Django:
The system requirement, deployment, and configuration issues seem
overwhelming. I get the impression that Python framework developers
just assume the user has complete control over the server. Those who
develop Python frameworks seem to have no regard for the realities of
shared hosting. System requirements tend to be sky-high: Apache 2.x,
mod_python (latest version), fastcgi (at least), command line access,
PostgreSQL (recommended). Assuming you can meet the system
requirements, you still have server configuration issues such as
setting up the Path, and maybe the .htaccess file. Then there is the
ongoing configuration: database model has to be synced to database,
configuration file for every application, urls have to be configured
to match your view, webserver has to be restarted every time modify
your code - or touch every file if using fastcgi. Django may be a
great project, but the admin overhead seems excessive. Also, not much
built-in Ajax support.

TurboGears:
System requirements about the same as Django. Better Ajax support than
Django. TurboGears in a bunch of other Python projects glued together.
I have mixed feeling about the "Frankenstein" approach. On the one
hand, I understand the desire to have "best of breed," on the other
hand, I'm not sure I'm comfortable with components being swapped out
fairly frequently. For example, according to wikipedia, TurboGears
components consist of: "MochiKit, SQLObject, CherryPy and Kid." As I
understand it, practically all of those components have been swapped,
or will soon be swapped.

Rails:
System requirement issues again. Also, as I understand it, Rails does
not handle complex data relations very well.

Re: One man"s search for an MVC framework

am 07.08.2007 21:54:48 von ELINTPimp

On Aug 7, 1:41 pm, walterbyrd wrote:
> I am considering PHP and Python frameworks. This is what I'd like:
>
> 1) Good documentation
> 2) Active community
> 3) Easy to set up a CRUD grid
> 4) Built in ability to handle complex data relations
> 5) Strong data validation
> 6) Built in multi-level user authentication
> 7) Ajax enabled inline editing
> 8) Easy to deploy and configure
> 9) Low system requirements
> 10) Misc.
>
> I have looked at the following frameworks, this is my analysis:
>
> Codeignitor:
> Great documentation, good community, very low system requirements,
> easy to deploy. But fails on CRUD and Ajax.
>
> CakePHP:
> Biggest and most active community of all, low system requirements,
> easy to deploy. Several popular PHP projects integrate with Cake in
> one way or another: Drupal, Joomla, Mambo, PhpBB. The complaint I read
> about, constantly, is the documentation.
>
> Qcodo:
> Decent community, system requirements are not too bad (PHP5), easy
> enough to deploy. The CRUD and Ajax features are the best I've ever
> seen. When it comes to developing a sortable, searchable, inline
> editable grid; Qcodo seems to blow away all the others. I am somewhat
> concerned about doing anything outside of what is shown in the
> tutorials. Also, somewhat concerned about maintainability. For
> example, I think Qcodo generates 8 files for every table you create -
> seems like a lot.
>
> Django:
> The system requirement, deployment, and configuration issues seem
> overwhelming. I get the impression that Python framework developers
> just assume the user has complete control over the server. Those who
> develop Python frameworks seem to have no regard for the realities of
> shared hosting. System requirements tend to be sky-high: Apache 2.x,
> mod_python (latest version), fastcgi (at least), command line access,
> PostgreSQL (recommended). Assuming you can meet the system
> requirements, you still have server configuration issues such as
> setting up the Path, and maybe the .htaccess file. Then there is the
> ongoing configuration: database model has to be synced to database,
> configuration file for every application, urls have to be configured
> to match your view, webserver has to be restarted every time modify
> your code - or touch every file if using fastcgi. Django may be a
> great project, but the admin overhead seems excessive. Also, not much
> built-in Ajax support.
>
> TurboGears:
> System requirements about the same as Django. Better Ajax support than
> Django. TurboGears in a bunch of other Python projects glued together.
> I have mixed feeling about the "Frankenstein" approach. On the one
> hand, I understand the desire to have "best of breed," on the other
> hand, I'm not sure I'm comfortable with components being swapped out
> fairly frequently. For example, according to wikipedia, TurboGears
> components consist of: "MochiKit, SQLObject, CherryPy and Kid." As I
> understand it, practically all of those components have been swapped,
> or will soon be swapped.
>
> Rails:
> System requirement issues again. Also, as I understand it, Rails does
> not handle complex data relations very well.

I noticed you didn't mention the symfony project. http://www.symfony-project.com/