A side effect of accelerating development by assembling systems of available open source components is the risk of incompatibility.
In this case, one must choose between abandoning the component, or modifying it. My recommendation is almost always to abandon it, because it is often an issue with the platform and the age of the component.
Assigning the return value of new by reference is deprecated
Was thrown by a great piece of software, on a PHP 5 platform.
I checked the release date and it looks like the software is not being updated. So, I chose a different package.
As a general rule, I don’t modify open source code. I strive to understand how the developers intended for it to be used, and work within those constraints. There are a few occasions when I will apply a patch or a quick fix because there is no alternative, but not many.
This has business impacts. It is almost always less expensive to use existing code than write new code. The tradeoff is that you accept a learning curve and some limitations to save the time. Thus - the code must be powerful and flexible enough to meet the requirements and must be fairly easy to use. Anything that is too difficult to work with should be discarded quickly.