SproutFramework
I have been hearing about Ruby on Rails a lot lately. I finally decided to try it to see what all the fuss is all about. I found a Windows installer that made installing Ruby easy. I installed Rails with Rubygems, a package manager for Ruby. Gems makes installing stuff really easy. I followed a couple tutorials I found on the rubyonrails.com. Even though I didn't finish my simple tutorials yet, I realize my Rails can help me to create web applications.
Rails is an MVC framework (model view controller) that is written in Ruby. I have heard about MVC before, but I haven't decided to check it out until now. From what I've learned so far, I have become determined to integrate MVC into my core web programming practices.
Scaffolding makes it simple to turn your database tables into a functional application. The scaffold is a generic program that provides basic viewing and editing of your data.
Rails also has generators that can start writing your code for you, when you want to move beyond the scaffolding. You can generate the code for models, views, controllers, and a few other things. The code will come with some default behavior, which you can modify to better suit your needs.
PHP Framework
Rails is great, but I have about 30,000 lines of PHP code that I wrote and I'd like to continue using. So I decided to write a framework in PHP that emulates some of the things I like about Rails. I thought about what features I wanted for a while, and about how I would structure my code. When it was time to write code, I wrote the DatabaseInterface class first.
DatabaseInterface
DatabaseInterface aims to serve a similar purpose as Rails' ActiveRecord. It asks the database about what a table's structure is, to pass along to the model. It also builds SQL and performs queries. The idea is to be able to do most things without needing to write queries by hand.
Model
The Model class stores information obtained from the DatabaseInterface, and defines relationships between sets of data.
Controller
The controller is where the data is processed, and tags are rendered. The tags are used by the View to produce the final output. The view reads templates which can contain references to the object being viewed, and other objects.
Zend PHP Collaboration Project
On October 20th, Zend announced that they are partnering with IBM to co-develop PHP technologies. They are making a PHP IDE based on Eclipse, an open source integrated development environment. I am really interested in trying this new product. I've been using PSPad, and I just installed Zend Studio 5 beta 2. Zend Studio's features are very nice. I haven't explored most of the new features yet. The code folding is nice. My main complaint is that Zend Studio uses almost 200M of RAM sometimes. I have no idea how it is implemented, other than it's written in Java.
Also announced was the development of a new PHP application framework. Maybe it will be considered the Rails of PHP.
Collaboration Site