With CommandBox we have learned how easy it is to install projects/modules/interceptors/etc from ForgeBox. But what if what you want doesn't exist? Or what if you have an existing project you want available to install quickly and easily with CommandBox? We believe strongly in the community and the power of Open Source, so we encourage you to contribute. Get that project/module/whatever out there and share it with the world. Use community to better it and yourself as yo...
Blog
Easily Inject Java into Your ColdBox App
If you've ever worked with jars or raw java in ColdFusion, you will love the JavaLoader module for ColdBox. The JavaLoader module will interface with Mark Mandel's JavaLoader to allow you to do a network class loader, compiler and proxy. You can keep jars with your application's code instead of putting them in ColdFusion classpath, and you can even dynamically compile java co...
CommandBox - Commands can be Clean Code Too
In today's world, we use frameworks, and separate concerns with MVC or MV*, we strive for Clean Code to make Uncle Bob proud, or Bossman Bob at least. Just because the “Run” function is all you need in a CFC (which extends the BaseCommand) for CommandBox to index the Command, doesn’t mean you have to jam all your code into that one function. Lets look at some simple code cleanup.
The Global View Helper
Since the early ColdBox 2 versions we had the ability to declare helpers for our layouts and views by creating a file right next to the view and adding the suffix Helper to it. This would allow the framework to bind the two templates together at run-time. This is a great way to provide further separation by convention. However, there was no way to affect layouts and views globally. You only had the global application helper which injected functions and...
CommandBox Snake- All In Good Fun
As I always say, "All work and no fun makes you a dull programmer!" Well, with CommandBox, we're here to fight boredom and productivity with the fun "Snake" game. This is the class game of moving an-ever growing snake around the map in 4 directions while eating up the apples. For every app the snake devours, it grows by one character in length.
The Security Module
Looking to secure your ColdBox application? The Security Module can be your security rules engine for your application. It provides flexible options to rules based security for you to use.
We have often talked about how a module can be either complex or as simple as an interceptor. Our Security Module is basically just an interceptor that gets registered in your application to enforce rules you define. Installing it is easy u...
Get your i18n on in ColdBox 4.0
As part of the core cleanup for ColdBox 4.0, the internationalization aspects (i18n) have been moved out into their own module. Up until ColdBox 4.0, i18n was a plugin, like messageBox, and Logger, and Validator. All of these plugins have been reworked into ColdBox 4.0 modules and are available on ForgeBox.
Without i18n being in the core, your smaller, focused applications that don't leverage i18n's features won't have i18n weighing down your server.
But, for the i18...
Let’s get cooking with CommandBox Recipes!
One exciting feature about CommandBox is the ability to group commands together into a lovingly little file we call, a recipe. We even gave it its own extension, .boxr. This little gem will allow you to automate several commands from your native shell, it will be faster to use our recipe command that allows you to run several CommandBox commands at once. This will allow you to only load the CommandBox engine once for all those commands, but still be dumped back at your native prompt when done. Recipes can also just be useful for a series of commands you run on a regular basis, from test executions, to compressing files, the possibilities are endless.
Below is a simple example of how to create a recipe and execute it. For further insight, we recommend you read our chapter on recipes in our CommandBox book.
ColdBox 4.0 ORM Services
ColdBox's ORM services have always been a very compelling part of the framework for those using ORM in their applications. The provide you with an automatic, extendable service layer for an ORM entity complete with common methods, pagination and really sweet syntactical sugar such as dynamic finders:
user = userService.findByLastName("Majano"); users = userService.findAllByLastLoginBetween( "01/01/2014", "01/01/2015" ); count = userService.countByLastLoginGreaterThan( "01/01/2013" );
Artifacts Make A Difference
Let's keep that around
One of the neat "under the hood" features of CommandBox is artifacts. Artifacts are a copy of each package that gets downloaded with CommandBox. This is good for you and for the internet because once you have a package in your artifacts, you don't need to download it again. Artifacts are key to CommandBox efficiency.
We might need that again
The next time you download a package from ForgeBox, CommandBox reads the box.json file for that package's dependencies. Then, it checks to see if we already have a copy of those dependencies in the artifacts. If the dependency is in the artifacts, CommandBox just uses it. If not, then CommandBox calls to ForgeBox to get that dependency. That's efficiency.