Another Day, Another Framework -- Call for Intl Standards
Posted: Mon Jul 13, 2009 10:49 am
Seems PHP MVC frameworks are now being generated at about 2 per month, and they appear to usually have an emphasis on minimalism. Here's two more:
http://www.phparch.com/main/news/view/1 ... _architect
Madeam PHP Framework
sierra-php Framework
There are similar traits in all of the MVC frameworks. I'd like to all the people who have built these frameworks get together with the International Standards Organization for a conference and then form working committees out of that in order to create ISO standards. If we did that, then it would be easier to get a PHP job because you know the PHP MVC international standard. Currently when looking for a PHP job, you have a list of several PHP MVC frameworks -- mostly CakePHP, CodeIgniter (CI), Zend Framework, and Symfony -- but then again I see job listings that state, "Must know an MVC framework like Zend or CI."
It would be great if the standards were community-driven by calling a fair vote based on reason and logic, but unfortunately I think things may be too weighted for Zend and the other larger frameworks because more people know those than others. I'd like to see devs go into a room, list out all the ways that the gazillion PHP MVC frameworks (even lightweight ones) handle just one thing, such as their controller interaction. They'd have a public debate on the advantages and disadvantages of these object model designs or what's under the hood in the native API that drives those designs, and then decide for instance that they like the interface of CakePHP, for instance, but perhaps like the more sound API approach of Sierra. (Oh, and I just pulled that out of my hat -- don't take me literally.) From there, they could work together to create the best controller interface and native PHP API approach and come out with something new. But then it's not over -- you'd have to do the same thing with the model API, the view API, and then work towards getting a consolidated approach among them all that everyone can agree upon. From there, you could step back a bit and start to get vague, explaining things in a looser format such that all the current MVC frameworks could work towards that goal rather than be handed lines of code and told, "Stick that in your PHP framework."
The end goal would be that no matter what MVC framework you go with, if it meets the international standard, then its core API would be at least 80% identical in interface, and there would be recommendations (not requirements) for how those interfaces are applied to the native PHP API underneath. From there, the rest of the MVC framework could deviate from that standard with new ideas. So the end goal would provide for developers to get started on a project fast without confusion, and then learn the rest of the particular MVC framework after that. This has worked well for the databases with at least the ANSI-92 base standard. (Yes, I'm aware that other ANSI SQL standards have come after that, but most databases have at least tried to comply with ANSI-92.)
Or perhaps the standard could be limited to the M, V, and C. And a framework could say, "Meets international PHP MVC controller standard ISO 800054.1" for just the controllers, let's say. I don't know if I like that approach, but perhaps some others may like it.
///
Another thought I have is about Apache2 and the typical trick one does for handling a web-based front controller with a PHP MVC framework in the .htaccess file:
You see that so often that I wonder if the Apache core devs are watching, and if they might want to consolidate this a little better like:
And so whether this is Python, Ruby, PHP, or whatever, it would all pretty much act the same way.
http://www.phparch.com/main/news/view/1 ... _architect
Madeam PHP Framework
sierra-php Framework
There are similar traits in all of the MVC frameworks. I'd like to all the people who have built these frameworks get together with the International Standards Organization for a conference and then form working committees out of that in order to create ISO standards. If we did that, then it would be easier to get a PHP job because you know the PHP MVC international standard. Currently when looking for a PHP job, you have a list of several PHP MVC frameworks -- mostly CakePHP, CodeIgniter (CI), Zend Framework, and Symfony -- but then again I see job listings that state, "Must know an MVC framework like Zend or CI."
It would be great if the standards were community-driven by calling a fair vote based on reason and logic, but unfortunately I think things may be too weighted for Zend and the other larger frameworks because more people know those than others. I'd like to see devs go into a room, list out all the ways that the gazillion PHP MVC frameworks (even lightweight ones) handle just one thing, such as their controller interaction. They'd have a public debate on the advantages and disadvantages of these object model designs or what's under the hood in the native API that drives those designs, and then decide for instance that they like the interface of CakePHP, for instance, but perhaps like the more sound API approach of Sierra. (Oh, and I just pulled that out of my hat -- don't take me literally.) From there, they could work together to create the best controller interface and native PHP API approach and come out with something new. But then it's not over -- you'd have to do the same thing with the model API, the view API, and then work towards getting a consolidated approach among them all that everyone can agree upon. From there, you could step back a bit and start to get vague, explaining things in a looser format such that all the current MVC frameworks could work towards that goal rather than be handed lines of code and told, "Stick that in your PHP framework."
The end goal would be that no matter what MVC framework you go with, if it meets the international standard, then its core API would be at least 80% identical in interface, and there would be recommendations (not requirements) for how those interfaces are applied to the native PHP API underneath. From there, the rest of the MVC framework could deviate from that standard with new ideas. So the end goal would provide for developers to get started on a project fast without confusion, and then learn the rest of the particular MVC framework after that. This has worked well for the databases with at least the ANSI-92 base standard. (Yes, I'm aware that other ANSI SQL standards have come after that, but most databases have at least tried to comply with ANSI-92.)
Or perhaps the standard could be limited to the M, V, and C. And a framework could say, "Meets international PHP MVC controller standard ISO 800054.1" for just the controllers, let's say. I don't know if I like that approach, but perhaps some others may like it.
///
Another thought I have is about Apache2 and the typical trick one does for handling a web-based front controller with a PHP MVC framework in the .htaccess file:
Code: Select all
RewriteEngine On
SetEnv URL_PREFIX /myapp
# or could also be SetEnv URL_PREFIX /
php_value auto_prepend_file 'system/bootstrap.php'
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . %{ENV:URL_PREFIX}index.php [QSA]Code: Select all
BaseURL /myapp
BootStrap system/bootstrap.php
FrontController index.php