Today I’ll be announcing the start of a new project called “OpenType Threads”. OpenType Threads is a Bulletin Board System (a.k.a Forum, Discussion Board, Message Board), now don’t shake your head yet! It’s not yet another message board that will add tons of bloated things (A.K.A Smarty, Template Engines, really guys? We do not need template engines, they just eat up the ram of the poor server from so many regex, splitting ). Of course that is up to you to decide :)
The purpose of my project is to provide rich flexibility to developers and users.
- MVC Design (Model-View-Controller): The application itself is a framework, yet I must warn you that it is not a framework. The choice of the MVC design is to eliminate the use of template engines. I believe PHP is not a tough language to learn, so please web designers, learn the basics.
So, is it really a framework or not? Hard to say buddy! It feels like one, but it’s not one.
- URL Routing: Oh so glorious clean urls (a.k.a pretty urls, friendly urls). This is what makes it feel a framework. OpenType Threads provides the option to create new routes: Regular Expression routes, Static, Route. So! When a developer creates an extension, they don’t need to bother with links at all. This is certainly a must-mention. OpenType Threads does not attempts to be a framework, but a solution. Sure, you can create portals with it, probably. It will be always a message board, no buts.
- Database: Wait? I’m going to be discussing about database? Naw! I’ll be using Doctrine ORM to be the main layer to manage the database. Why?
- You can use Oracle, Firebird, Microsoft SQL Server, etc. Through PDO
- Prevention of SQL Injections
- Creation of multiple connections (which is very useful if I want to import, lets say… phpBB, IceBB)
- Re-usability: OpenType Threads tries it hardest to become independent of some objects. That means that if I use a e-mail validation filter, you can also use it painlessly for your extensions.
- Extensions: This is the toughest part, there are design patterns that will probably help. Yet I don’t want to create a system that will overkill the server. There are many things that happens in a bulletin board, INTERNALLY. And really, I don’t want it to be a wordpress, because it may be pretty externally, but internally it’s one ugly thing to maintain. (really, how can they keep their sanity!)
- License: This product is under a proprietary license. See why later on :)
Anyway that should give you an idea of this web application. I know there are frameworks out there I could have based my application on. It is not because I feel like “but man I hate learning other systems, I prefer writing my own!” or “php frameworks are so over-engineered”. I have been using PHP for years, on my way learning Java. See, this project is not a popularity contest. This is me wanting to learn more about design patterns, this is me becoming a better php developer, and this is me providing my knowledge to users.
What can I say? Don’t expect things to come to you. Go for it, life is a bitch, and while it sounds unprofessional, it’s a tough one! I’ve been hesitant for quite a long time in starting a project, always thinking the negative sides of creating one. Take joy in what you create, take joy in what you can vision. Don’t worry about “what if people don’t like it” , “what if my creation sucks”, “what if I won’t be able to support others”, “there are other alternatives”. Really, don’t worry, be happy. Part of the learning process is that sometimes you learn with others.
About the “there are other alternatives”. And you know what? sometimes they stick with the same features for years, same look, same logic. No re-factoring, no features. A product that has an standard set of features DOES NOT limit you to be creative. I can think of a dozen ways how a message board should act, how can it look. Really, take joy in what you can create and envision.
Another personal thought: I started this project because I can’t stand the solutions out there. I will not name any of them because if I do I will sound more like a person with anger management problems.
A few more things about the project: What about Polls, private message system, etc etc? Hey guys, I’m only one person. I take action with present needs. I don’t want to go create something half done then jump onto the other. The world will not end! So, baby steps, we’ll get there :)
Oh yea, about the proprietary license, no no, the project will be licensed under the Lesser General Public License (LGPL)
I know some companies will love me for choosing the LGPL, don’t worry, the love is equal. And guys, OpenType Threads is PHP Powered!
