I want to add some classes to a CodeIgniter project that aren’t models, views, or controllers. They will most likely be a built in Models/Controllers and used in various ways. Where should I store these classes, and what is the best way to implement them in CodeIgniter? (Or more generally, any MVC-based framework?).
EDIT: Looking through some of the codeIgniter documentation, it looks like adding the objects to a helper is the way to go, is that correct?
CI is unlike a lot of MVC frameworks in that it doesn’t make it challenging to integrate outside libraries. Generally, there are a couple approaches:
Just include()/require() the library and use it normally. This works fine most of the time, unless there’s a naming conflict. CI mostly stays out of the way, so this isn’t common. In this case, you can put the library wherever you feel like. Generally I try to keep them in a shared “libs” directory, outside of the document root, since I don’t assume they’ll only be used by CI.
Put your libraries in your applications/libraries and load them using the CI->load() method. This puts some restrictions on naming conventions, so you might need to massage existing libraries or write some sort of wrapper constructor. The CI docs on creating libraries covers this pretty well.
Personally, I much prefer the first approach. It’s one of the benefits of using CI.