If you are like me you have what I like to call “A Development Toolbox.” It is basically a collection of tools that I will choose from when developing a site for a customer. In my toolbox I have a couple of frameworks I like, MVC of course, a CMS option, three to four carts I can choose from depending on the size of the clients business and their requirements, and the trusty JQuery. The thing that has been bothering me for a while is that I have a hole in my toolbox.
The whole purpose of this toolbox is to increase my development speed, decrease my overhead, and get the client’s site turned out as quickly, securely, and functional as possible. So if I need a simple three or five page static site I don’t need the server overhead of any of my current tools. I only need some static XHTML and CSS, maybe some simple JS for looks. So that is well and good, I keep a tar file that I can unpack and have a good base layout and file structure so I can start working.
Where I get slowed down is when it comes to maybe needing to do a little database work, or to handle some form errors in a quick, friendly way. I have built classes in the past to handle these things, to help me work faster but I always go back and redo and redo to try to make it work more efficiently. So I end up spending a lot of time on trying to make my code better when I use them. So what is the point in all this long, drawn out intro? I am trying to set up why Flourish might be the next big tool to add to your toolbox.
What is Flourish?
Flourish is a PHP Library, make sure to read that right, it is not a framework. It is a collection of classes that can help you build projects without having to start from scratch. I know that you are probably thinking, “that sounds a lot like a framework!” Well you are right it does “sound” a lot like a framework but it isn’t. The difference is that there are no set ways of having to organize your files first of all and most importantly you are not required to include Flourish if you don’t need it on that page. So maybe you don’t have any use for Flourish on your Home Page, About Page, or FAQ Page but you do need it on the Contact page then that is ok. You can just use it there.
I think what I will be using it for will be not only to just help out on pages where I want to use the libraries but also to handle a lot of my layouts. The layout system is almost exactly what I use normally but this will help me to keep it standardized since it works very similar to how I usually work but it keeps me using the same system instead of changing code around as I might have an urge to sometimes do.
Notes on Flourish
Flourish seems to be new, but that is a good thing sometimes. I have written before that when picking a framework that you need to find established frameworks with good communities. Well with a library like this I think that coming in soon is a great idea. Here is why. If something is not easy to figure out you can get into the code and figure it out whereas a framework often time has so much overhead code that it is hard to read class docs and get to the skinny. Another reason is that I think Flourish has a good opportunity to have a great online community eventually. Once there are some awesome people using it who like to help others there will be a chance of an IRC channel or a active forum and lots of blog posts to help you out a long the path.
So from someone that really likes MVC, and pretty much has spent all their real dev time using it, why would I suggest this over the framework. You can do these same things with a framework and on a mostly static site you can get away easy by using CakePHP with their pages controller that comes with the stock distro. The speed wouldn’t suffer very much if any and you would be saving the same amount of time. Using a Drupal you can set up the same site and do what you need super duper fast and be ready to launch and if the client ever wants admin control you can just add it in by giving them a role and a password. So what is the point in using something lighter, less supported, and not as popular?
I think that some kind of change is coming, I think that people are finally starting to realize that they don’t have to go with the trends, MVC while it has it’s obvious strengths is not always necessary and using it where it is not benefiting you and the client is just being a fan boy. I hate to be so harsh but I guarantee that if you ask even the developers of Flourish they will tell you that MVC has it’s place and that they use it when they need it and don’t when they have better options. Some people choose one particular tool and use it for everything but that means that they have made the wrong choice at least a small percentage of the time. For instance if you are a person who only uses WordPress and don’t have the option of using anything else you will have seriously crippled yourself when it comes time to do some E-Commerce. It can be done, but it won’t be done as well as if you used Prestashop, Magento, etc… Back to my starting point though, these are all tools, sure you can get screws out of a piece of wood with a hammer but why not just use the screwdriver, or in the case of Flourish, the Black and Decker Super Duper Power Handheld Screwdriver.