Lithium Bootstrap
I've been working on a new Lithium side project (yes, yet another) and I like this one because it really supports all the little research projects that I do by giving them a huge headstart. This can also help you with your projects as well.
What I've built (and will continue to polish) is not quite a CMS. However, I may make Minerva CMS require this foundation and continue my efforts with that CMS to make a more full blown, feature rich, CMS. Anyway...This is more of a bare bones structure / boilerplate code. Gentle enough for a new comer, but strong enough for production. 
I call it Lithium Bootstrap, because it mainly uses the wonderful Twitter Bootstrap CSS and JavaScript framework. It of course doesn't require it...But I think it looks great and it certainly has merit at least as an administrative backend interface. So there ya have it. By using this as a standard, additional plugins for Lithium Bootstrap can be written without worrying about things fitting into the design.
You are, of course, free to override any template you wish. For those of you familiar with my efforts with Minerva CMS, you'll know that my goal was to really allow for everything to be extended and overwritten so that core code can remain in the core and easily be maintained/upgraded.
So aside from a consistent UI, there are also a few goodies included with the core code. There are several utility libraries and helpers. More will be added over time. There is also the template system, which I just pointed out, that allows you to gracefully override any template in any library designed for use with Lithium Bootstrap. It's a filter on the dispatcher...So really...You can override view and layout templates for any library. Then a console command class that allows the entire system to be upgraded. It also introduces a package manager of the sorts, that allows you to install additional libraries built for Lithium Bootstrap (plugins).
The bootstrap console command will becomre more robust over time...But the package management part relies on ini files that list the location of Git repositories for the plugins. Each plugin built for Lithium Bootstrap also has a config.ini that will have extra options that get configured with the Libraries::add() command.
Lithium Bootstrap allows you to add libraries by putting files under your main application's config directory in a new directory called libraries. This is similar to a conf.d folder on a web server and really allows you to keep things organized and clean...Free from git commits, conflicts, etc. This also works for plugin repository ini files. So you can easily share your plugins with others and install them via the console command Lithium Bootstrap provides.
Again, this will become much more polished in the future. However, it does work right now as a proof of concept. It will simply evolve.
The goal of Lithium Bootstrap is to provide you (and let's face it, me) with a very quick way of setting up a new Lithium application with all the common bits of functionality that you may need. This may be faster than copying and pasting code and then changing up namespaces, etc. If you're anything like me, you re-use code and this will be wonderful.
The other goal is to help people get started with Lithium faster. It's basically a short cut to having a basic (or maybe not so basic) application up and running within minutes. If you're the type to learn from reverse engineering...Then this will also be wonderful.
If you have a virtual host setup that is ready for a Lithium application and the directory is empty, you can get started by entering in your console the following command: bash <(curl -s https://raw.github.com/tmaiaroto/li3_bootstrap/master/_build/bootstrap.sh)
Within a few seconds you'll be ready to go. From there you can install additional plugins, but please keep in mind that I built them with MongoDB in mind.
You can read more about the project on Github.


[Back To Blog Index]