Category : Nerd Stuff

PHP application frameworks

If you’re developing more and more web applications in PHP, you will find that a lot of things tend to come back every time. Somehow, I find myself designing forms and programming form handlers to put stuff in databases all the time.

Between doing it all yourself and using a WYSIWYG content management system, there is also the option of reuseable code. Lots of code (usually in classes) has been written and made available to the community as free software. The PHP Classes Repository for example, has a large collection of freely downloadable classes.

However, if you’re building larger applications, you want all this code to work together. For example, your form handler should know how to use your database abstraction code. That’s where application frameworks come in. I have looked at a few of those.

First, I’ll mention a few that are installable through PEAR, using channels.

Cerebral Cortex
PHP5-only. Uses PHP Data Object (PDO).

PHP Application Tools
Looks nice, has some interesting features, like a BBcode parser.

Horde
This has been around for quite a few years, and some well-known applications have been built on top of it. Unfortunately, I couldn’t get a clear view of its capabilities just from looking at its website.

Seagull
This looks very nice too! Uses PEAR, seems quite feature-rich and the API documentation looks good! Seagull is more than a framework, it is also a CMS and it creates 33 database tables to start with. Maybe a little overkill.

Solar
“Similar to PEAR, Similar to Horde”, but based entirely on PHP5. Is supposed to run cleanly under E_STRICT.

Symfony
Form validation, pagination, authentication, templating and more.

The Others:

binarycloud
Unfortunately, this doesn’t run on PHP5 (yet).

PAS Application Server for PHP
Looks interesting, but is very database-oriented en doesn’t have classes that deal with logging, sessions, etc.

BlueShoes
Looks like it could be what I’m looking for, but the open source version lacks some important features and the “enterprise” version is quite expensive.

Roadsend Site Manager
This look really nice and looks like the best shot so far. Forms, database, sessions, authentication… it’s all there. And it uses PEAR.

Prado
This PHP5-only “event-driven” and “component-based” framework was the winner of the 2004 Zend Coding Contenst. Its design is based on RAD tools like Delphi and Visual Basic.

PHP2Go
Looks nice, with quite a lot of features. Unfortunately, the API docs are in Portugese.

Ismo PHP Framework
As a “spare time project”, with current version 0.1.4, released mid-2004, this seems dead as a doornail. It does have some of the wanted features though.

php.MVC
Focused on the Model-View-Controller design pattern. Project seems dead.

DotPHP
“DotPHP want be like ASP.NET.” Is that good? It’s Engrish! I think the idea is much like Prado’s, but Prado looks much more solid.

Achievo ATK
This looks like it’s got a lot of features too. ATK is about minimizing the amount of user-code. Application code is generated from the toolkit. Sometimes compared to Ruby on Rails.

Fusebox for PHP
“Fusebox is, by far, the most popular and mature web framework available for ColdFusion and PHP developers”. Well, aren’t they all? I couldn’t get a good idea of its features from the website, and the examples are mostly based on ColdFusion.

For your convenience, I included a Google search for “PHP application framework”.

Debian Sarge -> Stable, revisited

Een tijdje geleden, in september 2004, na de aankondiging dat men naar een release van Debian Sarge aan het toewerken was, postte ik al een link naar het grafiekje van de release-critical bugs.

Aangezien men de wens heeft uitgesproken om Sarge eind deze maand toch te releasen, en het aantal bugs nu erg hard aan het dalen is, laat ik het grafiekje nog maar eens zien.

http://bugs.debian.org/release-critical/graph.png

Bron: Release-critical bugs status @ Debian.org

PHP & performance

Eerder schreef ik al een stukje over hoe clusters en High Availability mijn interesse hebben. Daarnaast is ook performance een groot punt van aandacht.

Omdat ik betrokken ben bij het in de lucht houden van Web-log, de gratis weblog-dienst van ilse, probeer ik daar ook steeds verbeteringen voor aan te dragen.

Een voorbeeld van een interesant project is de Turck MMCache for PHP. Deze PHP of Zend extensie cachet gecompilede PHP scripts in geheugen en op disk. Hiermee wordt de overhead van het compilen verminderd en de performance verhoogd.

Een ander stuk software dat mijn aandacht heeft getrokken, is memcached. Dit kan worden g ebruikt om resultaten van database-queries in het geheugen te cachen. Zodoende kun je de belasting van de database drastisch verminderen. De software werd ontwikkeld door de mensen achter LiveJournal.com, ook een weblog-dienst en een hele grote jongen, met miljoenen gebruikers.

Later meer…

Clusters

In mijn voortdurende speurtocht naar software die de betrouwbaarheid en performance van een IT-dienst kan vergroten, kom ik zo af en toe wel eens wat interessants tegen.

Linux Virtual Server kenden we natuurlijk al. Een ander initiatief op dat gebied is Wackamole.

Gisteren kwam ik gesurft langs OpenSSI, een open implementatie van een Single System Image cluster. Erg grappig.

Ondertussen ben ik ook nog aan het kijken naar een betrouwbaar gedistribueerd filesysteem, zoals Coda, Lustre of OpenAFS en ben ik dringend op zoek naar een goede manier om MySQL databases te kunnen load balancen. Veel verder dan MySQL Cluster, SQL Relay en Emic Application Cluster ben ik daar helaas nog niet gekomen. Misschien heb jij een goeie tip?

1 9 10 11 12 13