Installing PHPUnit using Pear on Mac OSX was such a process I have to write it down. If you want to get started with unit testing in SilverStripe you need PHPUnit installed.
Quick tip to change the separator used by SilverStripe to separate the links of the breadcrumb.
I wanted to add another library of classes to a Zend Framework project and autoload them, I created a folder called application/vendors/ to hold vendor libraries in seperate folders of their own. For example, using some CURL classes from Sem Labs, these classes would live in the application/vendors/semlabs/ folder.
Put a bit of work into upgrading the blog and might as well make a quick post now. Heres a trick to test if a class variable exists, isset or has a particular value dynamically. Call the magic method __get() for the variable name which you can generate on the fly.
I have had a few issues installing image gallery modules on Silverstripe 2.4. I'm new to using silverstripe so this is a beginners tutorial, the aim is to install a basic image gallery which fits the following criteria:
I'm using vnStat to measure internet usage on my Ubuntu 10.04 laptop, coupled with the vnStat PHP frontend it works nicely. Only problem was the summaries of disk usage started at the beginning of the month (sensibly) and we get billed on the 23rd, which is when our month ticks over and we get a new data cap.
Recently I've put a lot of work into an API solution for a cakePHP app which addresses some of the architectural issues of creating an API in a cakePHP project. To start with I threw together a nice simple API as a proof of concept and to showcase the ease at which an API can be created quickly using the RequestHandler component. While that solution was fine and incredibly quick to whip up, there are some issues when it comes time to extend the API, the biggest of which is versioning.
The last posts in this series covered the a basic architecture of an API in cakePHP, the limitations of that basic architecture and a possible solution using an API component and some external API classes. The last part is the handling of API specific errors. The goals for the error handling system: