Check it out:
http://github.com/dhotson/kelpie
http://github.com/dhotson/kelpie/blob/master/demoapp.php
It's got its own Rack style web server built in ... kinda crazy huh? ;-)
Check it out:
http://github.com/dhotson/kelpie
http://github.com/dhotson/kelpie/blob/master/demoapp.php
It's got its own Rack style web server built in ... kinda crazy huh? ;-)
My problem in the PHP world is: you have your Rack-style server. Another project has a different style. In Ruby, every framework nowadays is on Rack.
It's a real challenge to make nice looking mini languages in PHP. At least Ruby gives you a bit more rope to make clever little languages. /envy
But yeah, I really wish PHP had a web server interface like Rack that was more widely accepted. The two that look the most promising are:
http://github.com/indeyets/appserver-in-php
Also, the downside of implementing your own web server is that basically zero existing PHP code will work with it. It's because you have to re-implement all the usual superglobal stuff $_GET $_POST $_SESSION etc..
.. I consider that a plus. ;-)
It really depends, frameworks like Agavi do not use $_GET etc. and explicitly disallow their use.
I can't claim much credit for the design of Kelpie, it's mostly a direct port of Ruby's Thin web server. I guess there's a couple of notes I'd make:
- I'd recommend using the mongrel http parser rather than implementing your own. I wrote a PHP extension for it - http://github.com/dhotson/httpparser-php
Also, some cosmetic stuff (feel free to ignore):
- I prefer camelCase for methods
- public/private access control on methods
- PHP namespaces look and act weird to me so I don't use them
- I prefer using underscores in names and a classloader to avoid require statements
Also, I've pretty much developed my own PHP style. I don't follow PEAR conventions.. I go with what looks clearest to me. So obviously you'll want to take my advice with a grain of salt.