I'd like to change something in the Core file - so I'm not really extending it, just replacing it. How can I use a copy of that file in my app, rather than using the core?
I think that this should be in the Docs because it's not easy to figure out how to do it otherwise. I appreciate your argument that you shouldn't have to do it, but I did - and I might not be in a position to wait for the next stable release. I'll add this to the Docs and do a pull request, see what feedback is?
Extending and replacing works exactly the same way.
Create the class file in app/classes, and add it to the app bootstrap. It extends when you use 'extends', it replaces when you don't.
It's not in the docs because we don't consider it best practice.
Either it's a core class that needs tinkering, in which case you extend and replace our augment only what's needed. This way you make it absolutely clear it's about core functionality.
Or it's an application class (which in this case has the same function as a core class), which has a name that doesn't collide with a core class.
The danger of replaceing a core class is that one day you're going to upgrade the core, and wonder why your app doesn't work anymore.
Bit odd...
'Upload' => APPPATH.'classes/upload.php',
Added to bootstrap but I get this error
ErrorException [ Error ]: Class 'Upload' not found
When attempting to use Upload::process($config)