Major Upgrade to BiffCMS
One of the nice things about switching BiffCMS to using the Zend Framework from the now extremely old and not-PHP5 BiffAPI that it used to run on is flexibility with power. Due to Zend Framework’s nature of allowing the programmer to do what they want instead of forcing them into a design paradigm, BiffCMS is now more modular.
What was overhauled?
The basic folder structure and some plumbing were overhauled in the last few days. The introduction of a ‘plugins’, a ’sections’, and a better theme system were all moved around and coded to allow for easier development. If you were using the Zend Framework version of BiffCMS all you will need to do is move some files around, but this is not a simple ‘overwrite files’ kind of upgrade.
Plugins
The heart of BiffCMS has always been Modules, which dictate what pages you can add to your site through BiffCMS. Since this has a much different term to Zend Framework developers these are now renamed Plugins and are much more easy to develop. Using the new ‘plugins’ folder, each plugin is now fully self contained inside its own folder. Need to install a new plugin? Drop it into the ‘plugins’ folder and go from there (still needs to be manually entered into the DB, but work on installation is coming along). I’ve also added an Externallink plugin that allows pages that direct to outside URLs.
Sections
BiffCMS is built using Zend Framework’s MVC components and therefore has full support for Zend Framework modules (collections of Controllers and View Scripts). BiffCMS calls these Sections and they can be used when a simple page Plugin is not enough. Drop them into the ’sections’ folder and add them to the index.php page just like a regular Zend Framework module. Work is also progressing on allowing Sections to be enabled and disabled via the admin GUI.
Theming
The last thing a web developer wants is for his website to look like everyone elses. BiffCMS now has support for packaged themes, much like the BiffAPI version used to. Just create a folder containing at least a ‘layout.phtml’ and an ‘admin-layout.phtml’, drop it into the ‘www/themes/’ folder, and you can select it from the System Config portion of the Admin. These are just regular Zend Framework layout files so existing layouts can be easily ported.
Administration
Along with the above changes, BiffCMS now supports adding and editing users (deleting coming soon!), the beginnings of a System Config section to allow low level config changes like Themes, and a better Plugin management system.
If you want to check it out, head over to http://code.google.com/p/biffcms and check out a copy of the SVN. Within a few weeks there will be a formal release as some loose ends are tied up.
Tankersley Web Solutions running BiffCMS
I’ve been meaning to do this for a while since BiffCMS has stablized to the point where I feel comfortable running it in production since switching it to Zend Framework from the old BiffAPI that it had been running. This is good since I just finished setting up and working on the website for Dragonlance: What If?, a new MUSH that will be going into beta this week.
Want to know how easy it is to get up and running with BiffCMS? I installed the app, ported the layout, and added a few pages in just about four hours total. Less than half of a day and I’ve got a site that I’m happy with and will have to do less to maintain than the straight Zend Framework-based site that was there before.
Want to try out BiffCMS? Head on over to the Google Code site and check out the latest working copy. I’ll be bundling a full release here within a week or so.
Zend Framework and Why It Matters
One of the aspects that I believe that has kept PHP from gaining significant ground as a legitimate enterprise language is that it hasn’t had the tools to prove that it is beyond merely a hobbyist’s tool or just merely a language that is good for building prototypes of an application. I don’t think anyone will say that PHP slows down the development process, but a lot of people outside the PHP community (and inside) would say that PHP can make for very sloppy, insecure code.
They would be correct. One can say that about any language but PHP enables just about anyone to sit down and build an application without them really needing to know what they are doing. PHP gives the coder a large amount of power without babysitting them. This strength has also caused a lot of problems as it has let coders get away with a lot of things that have lead to large security holes.
One thing that can help mitigate a lot of bad coding mistakes is to use a good set of tools to help the coder make the correct decisions. While nothing can replace good training in both PHP syntax and coding in general, one of the strongest tools a coder can give themselves is a framework that has taken care of many of the common tasks associated with application building. The Zend Framework, while being a somewhat new kid on the block in terms of frameworks, gives a coder a large amount of usable code to speed up development while making sure that good design decisions are enforced.


