Announcing the Silk Framework
Posted: December 31, 2008 by Ted Kulp
As I've worked on CMSMS 2.0, I've run into a few recurring issues that I didn't quite have an answer or reason for yet... 1. I wrote a lot of very generic pieces of code in order to make 2.0 easier to develop in the long run. I think I might've gone overboard a bit. I wasn't ever sure why. 2. As a professional developer, I kept running into issues where I wanted to use some of that code for other stuff. And it was too difficult to just pull out the piece I needed and didn't do it. When talking to my friend, Greg (who, incidentally, helped push me to launch CMSMS as a project), I was telling him about some of the things that 2.0 could do. I said something along the lines of, "Really, except for some routing and a few other little things, 2.0 could be a full development framework for other applications." And, in my typical way, I thought about this for a few days... and didn't do much else. So, I've decided to use my week off from work to put together the basics of a PHP5 based web application framework. This framework will then become the base of CMSMS 2.0 (it's less work than it sounds -- trust me) as well as any other application you might want to develop. It's a generic framework that builds on some of the key ideas we've had in CMSMS all along -- it just makes those tools easier to setup for whatever you'd like to develop. Who is this aimed towards? Professional PHP5 developers, plain and simple. If you know what a framework is and why you'd need one, then you're probably the correct candidate for this project. If this just flies over your head, then it's probably safe to skip to the next post in your news reader. :) What's the name mean? It's smooth. It's strong. It's a nice foundational material... Really? It's a short name that fits well when you put it in every class name and it'll also make for a nice logo someday. Calguy said "smooth" and it just went from there. What are the requirements? PHP 5.2+ on any compatible web server. A database of some sorts -- MySQL will be tested heavily. PostgreSQL and SQLite should also work fine. Development and documentation will be targetting developers on Unix based systems... Windows users might have to do a little bit of investigative work to develop with the system. What do I get?
- ADODB5 - The standard in database abstraction. Silk uses it throughout.
- The Silk ORM - Built on top of ADODB and uses the ActiveRecord pattern. Cuts down lines of code and makes basic database access very simple and OO.
- Smarty - Uses the power of smarty throughout. Smarty templates are used for all templates and layouts, as well as smarty plugins created for all form and navigation elements.
- Magic MVC - Using file naming conventions, new actions, controllers and views can be added with very minimal work. Everything is customizable afterwards.
- Events system - Stateless event handling system based on the one from CMSMS 1.x -- without the database. (coming soon)
- Unit testing - Ability to have unit tests on models, views and controllers. (coming soon)
- Users, groups, permissions - Have a basic system for handling these 3 things that fall into almost every web application. CMSMS 2.0 will use the same system, so applications will be able to share login information directly with CMSMS. (coming soon)
- OpenID - Logins will support the OpenID protocol and standard using the php-openid library. (coming soon)