I am dissatisfied with the HTML that is auto-generated by the built-in scaffolding system of Symfony. I am planning to write a plugin that will generate HTML more to my liking. I know that, in the world of Ruby On Rails, there are several plugins that improve upon the built-in scaffolding system of that framework. Since these plugins have a longer history, and are more advanced, than anything in the world of Symfony, I am looking to them for some inspiration.
This is what Hobo says about itself:
It turns out that the hard part is not going fast, but staying flexible. This is where we think Hobo really shines. If you’ve played with “app builders” before, you’ll know about The Wall. The Wall is the point you reach where you have to give up and do it the old way because that one feature you really need just isn’t going to happen. Hobo doesn’t have one.
…Like Rails itself, Hobo encapsulates a number of opinions about web application development. The opinion that is most central to Hobo is this: we have found that there is a great deal of similarity from one web application to the next. Much more similarity in fact, than is supported by today’s frameworks. We would rather implement this stuff once.
Of course this approach is common to all frameworks—everything that Rails provides is there because many or all web applications will need it: database connectivity, session management, working with HTTP, etc. etc. The difference with Hobo is that we are trying to take this idea to a much higher level than is normally expected from a web framework. The ultimate goal is: don’t program your application, just declare it.
This is what ActiveScaffold says about itself:
Most web applications have many more model objects exposed on the backend, or admin side, than they do on the front. Coding interfaces for all those models is redundant and a waste of resources when all you need is CRUD functionality that’s smart enough to handle all your ActiveRecord associations.
Enter the ActiveScaffold plugin:
- An AJAXified table interface for creating, updating, and deleting objects
- Automatic handling of ActiveRecord associations
- Sorting, Search and Pagination
- Graceful JavaScript degradation
- RESTful API support (XML/YAML/JSON) baked in
- Sexy CSS styling and theming support
- More extension points than you can shake a stick at
- Guaranteed to work on Firefox 1+, IE 6+ and Safari 2+
- Released under the MIT License, the same one as Rails itself, so you can use it freely in your commercial applications.
This is what Streamlined says about itself:
Streamlined is a plugin for Ruby on Rails that provides an instant, production-ready UI for your ActiveRecord models. It started as a way to generate Administrative back-ends, but has become more general purpose and flexible over time. Streamlined aims to bring the declarative goodness of ActiveRecord to the view tier. It manages the presentation, creation, and editing of model instances, providing full-featured scaffolds equipped with everything you need to quickly and easily develop a rich user interface for interacting with your data, including:
- Zero-configuration relationship management
- Ajax-powered widgets and transitions
- Live data filtering
- Out-of-the-box sortable lists and pagination
- Exporting to XML, CSV, and JSON
- Declarative and easily-customizable UI development
- Cross-browser support including Firefox, Internet Explorer, and Safari
- Pluggable CSS styling
This gives a sense of the possibilities.
Hobo has an especially interesting goal, to create a framework that is declarative, rather than imperative.
In the short term, my goals for a new scaffolding system are simple:
1.) The HTML should use divs and CSS rather than tables.
2.) Pagination should be included by default.
3.) An administrative dashboard should be created by default.
I know I will want these 3 things from every Symfony project I start, so, for me at least, it makes sense to have a plugin that automates all this.