RtkDev:Core
From RevTK
What
Core framework features:
- Powerful and flexible MVC features of Symfony: "components", "helpers", "partials", ...
- Simple database system, using classes to represent tables, but not too much overhead. coreDatabase uses the same API as Zend_Db.
- Cascading configuration, using native php arrays (Symfony uses YAML). The configuration using php arrays is quite readable, with sufficient indentation and alignment.
The database layer implementation also started as a learning project. It mirrors the API from Zend_Db. It is much smaller because it implements only the most common MySQL features. The main goal then when I refactored the website was to remove all SQL querry strings from the code, and use an API that always escapes parameters. The ability to create "select" objects and pass them between methods has also become very useful. Similarly to the Core framework code, the coreDatabase API should mirror that of Zend_Db closely to ease transition to the Zend_Db library if the need comes.
Documentation
The Core framework API is fully documented in concise way in the included Core documentation application. You can not read this documentation online because the documentation IS a Core application itself, you'll need to access it from your local hosted version.
Background
Core framework is largely based on Symfony. It started as a separate project to learn MVC and php 5. I came accross Symfony while looking at all the php frameworks available then around 2007, and really liked the code style and readability.
I started refactoring code and replicating the Symfony API, while still cherry-picking just the code I wanted. Once all the basic functionality was there I decided to stop adapting code and included some components as is (most importantly Symfony 1.2's url routing).
I should have known better but I learned a lot while going through the guts of Symfony (and Fabien Potencier's blog). One interesting approach was to use existing API as blueprint in order to ease a possible future transition to Symfony and/or Zend_Db.
To conclude, the framework will probably switch some day back to the original Symfony, and perhaps use ORM, and even YAML or another nicer way of editing config files. Right now Core works "well enough", is fully documented by the Core documentation app, and offers a consistent platform to write the application code.
Whether it will be "good enough" for open source team work, we'll see... I think the Core documentation has the potential to introduce beginner php programmers more easily into MVC development, and coreDatabse(Zend_Db) is also probably easier to pickup than starting with a full blown ORM. This lowers the barrier for collaboration while still imposing a good structure from the Symfony standards.
