Zend have, finally, realised that enterprise and even just larger scale PHP projects, require more than just PEAR, PHP5 and Zend Studio, whilst all good, what they lack is coordination and a sense of the ‘Bigger Picture’.
Just as Java has its Community Process, PHP will now have a collaboration process where industry and the community can together work towards defining a web application framework and deployment system. This is really good news for anyone that writes site larger than a few pages, and especially when you work on many projects, quite often doing the same things again and again. Most seasoned PHP programmers have their own frameworks they use to make life a little less mundane and build on past tried-and-tested code. PEAR was a good effort to get people working on reusable components, but this is all PHP4 based and lacks an overall framework for implementing these components within.
My own framework consists of:
- a Java based core API – java.io, java.net, java.util, java.lang, etc (I am intending to merge this with cucua.tigris.org)
- a runtime library – class loader, error handling, logging, configuration, etc
- a servlet container – based on the Java Servlet 2.4 specification
- a MVC framework – based on Struts
- a component framework – based on Tapestry
When I can find a free Subversion open-source provider, and a name, I will make all this available under some sort of generous license (LGPL?) in the hope that perhaps some of it could be of some use to some people, and perhaps even to the formation of the official webapp framework.
Anyway, more here: http://www.zend.com/collaboration/
RSS + BitTorrent is gradually emerging, its only a matter of time before the two become indistinguishable.
iPodder (a cross platform podcast client) has already gained bittorrent support, and I guess clients like µTorrent and BitComet will also eventually support RSS.
This basically allows us to have all the immediacy of RSS with the low/fair bandwidth model of BitTorrent; suddenly mass distribution of all kinds of content becomes very simple.
Obviously, lots of services (some exist already) will start to offer dubious torrent-rss of popular TV shows and such like, but what I would like to see more than that is news. Good quality news, like the BBC, up to date, on my desktop (and therefore onto my phone/pda/ipod etc).
I have written a simple PHP script that goes off and parses the BBC site and pulls down the asx (ie, wmv) video, runs it through mencoder and convert it to mp4/mp3. All I would need to do then is create the torrent files and then publish an RSS feed… but not much point until there is a client available.
Ajax is damn cool.
I am currently working on a small project using Google Maps which displays properties on a map. There is a central object which manages communication (via googles GXmlHttp) with the servers-side php. Upon response, this same object parses the response XML and then updates its observers.
Each component then has an object which manages its display, it subscribes to the main object, and upon update will redraw that elements innerHTML, mostly by transfrorming the responseXML with XSLT using googles GXslt class).
This got me thinking about a component base widget framework implemented in javascript, something that a server side application could easily communicate with. Imagine something like awt/swing being rendered to a javascript/html browser, rather than a normal windowing system. Upon an event, the component would send the event object back to the server, the server would process this, and update all components subscribed to the model, the components would then decide whether they need to be redrawn or not, and the new state of these components would be collected, packaged up in xml, and sent back to the client.
This would mean that only the components that change would need to be updated and redrawn, and the whole page need not be reloaded.
A quick poke around found a couple of interesting projects:
- http://dojotoolkit.org/
No real demos yet, but looks promising, has a 0.1 version number, so perhaps not ready for production use
-
http://qooxdoo.oss.schlund.de
This seems very cool, nice gui, seems quite mature and pretty nippy.
-
http://www.zimbra.com/
This is a collberation tool, email, contacts, calendar, etc, using their own AJAX Toolkit
Project Cucua is an attempt to port the Java core API to php.
http://cucua.tigris.org/